V2bX/cmd/install_linux.go
2023-07-29 19:27:15 +08:00

63 lines
1.5 KiB
Go

package cmd
import (
"fmt"
"os"
"strings"
"github.com/InazumaV/V2bX/common/exec"
"github.com/spf13/cobra"
)
var targetVersion string
var (
updateCommand = cobra.Command{
Use: "update",
Short: "Update V2bX version",
Run: func(_ *cobra.Command, _ []string) {
exec.RunCommandStd("bash",
"<(curl -Ls https://raw.githubusercontents.com/InazumaV/V2bX-script/master/install.sh)",
targetVersion)
},
Args: cobra.NoArgs,
}
uninstallCommand = cobra.Command{
Use: "uninstall",
Short: "Uninstall V2bX",
Run: uninstallHandle,
}
)
func init() {
updateCommand.PersistentFlags().StringVar(&targetVersion, "version", "", "update target version")
command.AddCommand(&updateCommand)
command.AddCommand(&uninstallCommand)
}
func uninstallHandle(_ *cobra.Command, _ []string) {
var yes string
fmt.Println(Warn("确定要卸载 V2bX 吗?(Y/n)"))
fmt.Scan(&yes)
if strings.ToLower(yes) != "y" {
fmt.Println("已取消卸载")
}
_, err := exec.RunCommandByShell("systemctl stop V2bX&&systemctl disable V2bX")
if err != nil {
fmt.Println(Err("exec cmd error: ", err))
fmt.Println(Err("卸载失败"))
return
}
_ = os.RemoveAll("/etc/systemd/system/V2bX.service")
_ = os.RemoveAll("/etc/V2bX/")
_ = os.RemoveAll("/usr/local/V2bX/")
_ = os.RemoveAll("/bin/V2bX")
_, err = exec.RunCommandByShell("systemctl daemon-reload&&systemctl reset-failed")
if err != nil {
fmt.Println(Err("exec cmd error: ", err))
fmt.Println(Err("卸载失败"))
return
}
fmt.Println(Ok("卸载成功"))
}