97 lines
2.1 KiB
Go
97 lines
2.1 KiB
Go
package cmd
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"s-ui/config"
|
|
)
|
|
|
|
func ParseCmd() {
|
|
var showVersion bool
|
|
flag.BoolVar(&showVersion, "v", false, "show version")
|
|
|
|
adminCmd := flag.NewFlagSet("admin", flag.ExitOnError)
|
|
settingCmd := flag.NewFlagSet("setting", flag.ExitOnError)
|
|
|
|
var username string
|
|
var password string
|
|
var port int
|
|
var path string
|
|
var subPort int
|
|
var subPath string
|
|
var reset bool
|
|
var show bool
|
|
settingCmd.BoolVar(&reset, "reset", false, "reset all settings")
|
|
settingCmd.BoolVar(&show, "show", false, "show current settings")
|
|
settingCmd.IntVar(&port, "port", 0, "set panel port")
|
|
settingCmd.StringVar(&path, "path", "", "set panel path")
|
|
settingCmd.IntVar(&subPort, "subPort", 0, "set sub port")
|
|
settingCmd.StringVar(&subPath, "subPath", "", "set sub path")
|
|
|
|
adminCmd.BoolVar(&show, "show", false, "show first admin credentials")
|
|
adminCmd.BoolVar(&reset, "reset", false, "reset first admin credentials")
|
|
adminCmd.StringVar(&username, "username", "", "set login username")
|
|
adminCmd.StringVar(&password, "password", "", "set login password")
|
|
|
|
oldUsage := flag.Usage
|
|
flag.Usage = func() {
|
|
oldUsage()
|
|
fmt.Println()
|
|
fmt.Println("Commands:")
|
|
fmt.Println(" admin set/reset/show first admin credentials")
|
|
fmt.Println(" migrate migrate form older version")
|
|
fmt.Println(" setting set/reset/show settings")
|
|
fmt.Println()
|
|
adminCmd.Usage()
|
|
fmt.Println()
|
|
settingCmd.Usage()
|
|
}
|
|
|
|
flag.Parse()
|
|
if showVersion {
|
|
fmt.Println(config.GetVersion())
|
|
return
|
|
}
|
|
|
|
switch os.Args[1] {
|
|
case "admin":
|
|
err := adminCmd.Parse(os.Args[2:])
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
switch {
|
|
case show:
|
|
showAdmin()
|
|
case reset:
|
|
resetAdmin()
|
|
default:
|
|
updateAdmin(username, password)
|
|
showAdmin()
|
|
}
|
|
|
|
case "migrate":
|
|
migrateDb()
|
|
|
|
case "setting":
|
|
err := settingCmd.Parse(os.Args[2:])
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return
|
|
}
|
|
switch {
|
|
case show:
|
|
showSetting()
|
|
case reset:
|
|
resetSetting()
|
|
default:
|
|
updateSetting(port, path, subPort, subPath)
|
|
showSetting()
|
|
}
|
|
default:
|
|
fmt.Println("Invalid subcommands")
|
|
flag.Usage()
|
|
}
|
|
}
|