mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-03 23:20:26 +08:00
74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"github.com/TeaOSLab/EdgeAPI/internal/installers/helpers"
|
|
"github.com/iwind/gosock/pkg/gosock"
|
|
"os"
|
|
"os/exec"
|
|
)
|
|
|
|
func main() {
|
|
cmd := ""
|
|
flag.StringVar(&cmd, "cmd", "", "command name: [unzip]")
|
|
|
|
// unzip
|
|
zipPath := ""
|
|
targetPath := ""
|
|
flag.StringVar(&zipPath, "zip", "", "zip path")
|
|
flag.StringVar(&targetPath, "target", "", "target dir")
|
|
|
|
// parse
|
|
flag.Parse()
|
|
|
|
if len(cmd) == 0 {
|
|
stderr("need '-cmd=COMMAND' argument")
|
|
} else if cmd == "test" {
|
|
// 检查是否正在运行
|
|
var sock = gosock.NewTmpSock("edge-dns")
|
|
if sock.IsListening() {
|
|
// 从systemd中停止
|
|
systemctl, _ := exec.LookPath("systemctl")
|
|
if len(systemctl) > 0 {
|
|
systemctlCmd := exec.Command(systemctl, "stop", "edge-dns")
|
|
_ = systemctlCmd.Run()
|
|
}
|
|
|
|
// 从进程中停止
|
|
if sock.IsListening() {
|
|
_, _ = sock.Send(&gosock.Command{
|
|
Code: "stop",
|
|
})
|
|
}
|
|
}
|
|
} else if cmd == "unzip" { // 解压
|
|
if len(zipPath) == 0 {
|
|
stderr("ERROR: need '-zip=PATH' argument")
|
|
return
|
|
}
|
|
if len(targetPath) == 0 {
|
|
stderr("ERROR: need '-target=TARGET' argument")
|
|
return
|
|
}
|
|
|
|
unzip := helpers.NewUnzip(zipPath, targetPath)
|
|
err := unzip.Run()
|
|
if err != nil {
|
|
stderr("ERROR: " + err.Error())
|
|
return
|
|
}
|
|
|
|
stdout("ok")
|
|
} else {
|
|
stderr("ERROR: not recognized command '" + cmd + "'")
|
|
}
|
|
}
|
|
|
|
func stdout(s string) {
|
|
_, _ = os.Stdout.WriteString(s + "\n")
|
|
}
|
|
|
|
func stderr(s string) {
|
|
_, _ = os.Stderr.WriteString(s + "\n")
|
|
}
|