config.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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", "v2ray.com", "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. src = filepath.Join(GOPATH, "src", "v2ray.com", "core", "tools", "release", "doc", "readme.md")
  35. dest = filepath.Join(dir, "readme.md")
  36. if err := copyConfigFile(src, dest, goOS, true); err != nil {
  37. return err
  38. }
  39. if goOS == Windows || goOS == MacOS {
  40. return nil
  41. }
  42. src = filepath.Join(srcDir, "vpoint_vmess_freedom.json")
  43. dest = filepath.Join(dir, "vpoint_vmess_freedom.json")
  44. if err := copyConfigFile(src, dest, goOS, true); err != nil {
  45. return err
  46. }
  47. if err := copyConfigFile(src, dest, goOS, true); err != nil {
  48. return err
  49. }
  50. if goOS == Linux {
  51. if err := os.MkdirAll(filepath.Join(dir, "systemv"), os.ModeDir|0777); err != nil {
  52. return err
  53. }
  54. src = filepath.Join(srcDir, "systemv", "v2ray")
  55. dest = filepath.Join(dir, "systemv", "v2ray")
  56. if err := copyConfigFile(src, dest, goOS, false); err != nil {
  57. return err
  58. }
  59. if err := os.MkdirAll(filepath.Join(dir, "systemd"), os.ModeDir|0777); err != nil {
  60. return err
  61. }
  62. src = filepath.Join(srcDir, "systemd", "v2ray.service")
  63. dest = filepath.Join(dir, "systemd", "v2ray.service")
  64. if err := copyConfigFile(src, dest, goOS, false); err != nil {
  65. return err
  66. }
  67. }
  68. return nil
  69. }