diff --git a/.gitignore b/.gitignore index 9fa1115..10d64c1 100644 --- a/.gitignore +++ b/.gitignore @@ -27,4 +27,5 @@ go.work.sum testconfig.json go.sum -main \ No newline at end of file +main +output \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..662a52d --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +miku : users/go.sum supporter/go.sum miku/go.sum miku/main + mkdir output + mv miku/main output/miku + +users/go.sum : + cd users && go mod tidy && cd ../ +supporter/go.sum : + cd supporter && go mod tidy && cd ../ +miku/go.sum : + cd miku && go mod tidy && cd ../ +miku/main : + go build -C miku + +clean : + rm -rf output users/go.sum supporter/go.sum miku/go.sum miku/main \ No newline at end of file diff --git a/miku/main.go b/miku/main.go index 9b28c7d..442deae 100644 --- a/miku/main.go +++ b/miku/main.go @@ -7,7 +7,9 @@ import ( "fmt" "log" "os" + "os/exec" "path/filepath" + "runtime" "miku/supporter" @@ -49,7 +51,7 @@ func main() { } fullpath, err := filepath.Abs(configPath) if err != nil { - return nil + return err } fmt.Println(fullpath) file, err := os.ReadFile(fullpath) @@ -75,11 +77,15 @@ func main() { } newJson, err := json.MarshalIndent(newConfig, "", "\t") if err != nil { - return nil + return err } fileToWrite.Write(newJson) fmt.Printf("Пользователь %s добавлен в конфиг %s\n", c.Args().First(), fullpath) fmt.Printf("Vless URL: %s\n", vlessUsers.VlessURL(c.Args().First(), domain)) + sysd := exec.Command("systemctl", "reload", "sing-box") + if err := sysd.Run(); err != nil { + return err + } return nil }, }, @@ -132,10 +138,14 @@ func main() { } newJson, err := json.MarshalIndent(newConfig, "", "\t") if err != nil { - return nil + return err } fileToWrite.Write(newJson) fmt.Printf("Пользователь %s удален из конфига %s", c.Args().First(), fullpath) + sysd := exec.Command("systemctl", "reload", "sing-box") + if err := sysd.Run(); err != nil { + return err + } return nil }, }, @@ -159,7 +169,7 @@ func main() { } fullpath, err := filepath.Abs(configPath) if err != nil { - return nil + return err } fmt.Println(fullpath) file, err := os.ReadFile(fullpath) @@ -205,7 +215,7 @@ func main() { } fullpath, err := filepath.Abs(configPath) if err != nil { - return nil + return err } fmt.Println(fullpath) file, err := os.ReadFile(fullpath) @@ -223,6 +233,9 @@ func main() { }, }, } + if runtime.GOOS != "linux" { + log.Fatal(errors.New("Неподдерживаемая ОС")) + } if err := cmd.Run(context.Background(), os.Args); err != nil { log.Fatal(err) }