[cmd] initiate
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
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(" 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 "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()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user