config.go 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package main
  2. import (
  3. "io/ioutil"
  4. "os"
  5. "path/filepath"
  6. "strings"
  7. )
  8. func copyConfigFile(src, dest string, goOS GoOS, format bool) error {
  9. content, err := ioutil.ReadFile(src)
  10. if err != nil {
  11. return err
  12. }
  13. if format {
  14. str := string(content)
  15. str = strings.Replace(str, "\r\n", "\n", -1)
  16. if goOS == Windows {
  17. str = strings.Replace(str, "\n", "\r\n", -1)
  18. }
  19. content = []byte(str)
  20. }
  21. return ioutil.WriteFile(dest, content, 0777)
  22. }
  23. func copyConfigFiles(dir string, goOS GoOS) error {
  24. GOPATH := os.Getenv("GOPATH")
  25. srcDir := filepath.Join(GOPATH, "src", "github.com", "v2ray", "v2ray-core", "tools", "release", "config")
  26. src := filepath.Join(srcDir, "vpoint_socks_vmess.json")
  27. dest := filepath.Join(dir, "vpoint_socks_vmess.json")
  28. if goOS == Windows || goOS == MacOS {
  29. dest = filepath.Join(dir, "config.json")
  30. }
  31. if err := copyConfigFile(src, dest, goOS, true); err != nil {
  32. return err
  33. }
  34. if goOS == Windows || goOS == MacOS {
  35. return nil
  36. }
  37. src = filepath.Join(srcDir, "vpoint_vmess_freedom.json")
  38. dest = filepath.Join(dir, "vpoint_vmess_freedom.json")
  39. if err := copyConfigFile(src, dest, goOS, true); err != nil {
  40. return err
  41. }
  42. if goOS == Linux {
  43. if err := os.MkdirAll(filepath.Join(dir, "systemv"), os.ModeDir|0777); err != nil {
  44. return err
  45. }
  46. src = filepath.Join(srcDir, "systemv", "v2ray")
  47. dest = filepath.Join(dir, "systemv", "v2ray")
  48. if err := copyConfigFile(src, dest, goOS, false); err != nil {
  49. return err
  50. }
  51. if err := os.MkdirAll(filepath.Join(dir, "systemd"), os.ModeDir|0777); err != nil {
  52. return err
  53. }
  54. src = filepath.Join(srcDir, "systemd", "v2ray.service")
  55. dest = filepath.Join(dir, "systemd", "v2ray.service")
  56. if err := copyConfigFile(src, dest, goOS, false); err != nil {
  57. return err
  58. }
  59. }
  60. return nil
  61. }