Files
jiazhizhong 1279635d7f fix
2022-03-10 17:09:03 +08:00

89 lines
1.9 KiB
Go

package main
import (
"fmt"
admin "jiacrontab/jiacrontab_admin"
"jiacrontab/pkg/pprof"
"os"
"flag"
"jiacrontab/pkg/version"
"jiacrontab/pkg/util"
"github.com/iwannay/log"
)
var (
debug bool
cfgPath string
logLevel string
user string
resetpwd bool
pwd string
)
func parseFlag(opt *admin.Config) *flag.FlagSet {
flagSet := flag.NewFlagSet("jiacrontab_admin", flag.ExitOnError)
// app options
flagSet.Bool("version", false, "打印版本信息")
flagSet.Bool("help", false, "帮助信息")
flagSet.StringVar(&logLevel, "log_level", "warn", "日志级别(debug|info|warn|error)")
flagSet.BoolVar(&debug, "debug", false, "开启debug模式")
flagSet.StringVar(&cfgPath, "config", "./jiacrontab_admin.ini", "配置文件路径")
flagSet.BoolVar(&resetpwd, "resetpwd", false, "重置密码")
flagSet.StringVar(&pwd, "pwd", "", "重置密码时的新密码")
flagSet.StringVar(&user, "user", "", "重置密码时的用户名")
// jwt options
flagSet.Parse(os.Args[1:])
if flagSet.Lookup("version").Value.(flag.Getter).Get().(bool) {
fmt.Println(version.String("jiacrontab_admin"))
os.Exit(0)
}
if flagSet.Lookup("help").Value.(flag.Getter).Get().(bool) {
flagSet.Usage()
os.Exit(0)
}
opt.CfgPath = cfgPath
opt.Resolve()
if util.HasFlagName(flagSet, "debug") {
opt.App.Debug = debug
}
if util.HasFlagName(flagSet, "log_level") {
opt.App.LogLevel = logLevel
}
if debug {
log.JSON("debug config:", opt)
}
return flagSet
}
func main() {
cfg := admin.NewConfig()
parseFlag(cfg)
log.SetLevel(map[string]int{
"debug": 0,
"info": 1,
"warn": 2,
"error": 3,
}[cfg.App.LogLevel])
pprof.ListenPprof()
admin := admin.New(cfg)
if resetpwd {
if err := admin.ResetPwd(user, pwd); err != nil {
fmt.Printf("failed reset passwrod (%s)\n", err)
} else {
fmt.Printf("reset password success!\n")
}
os.Exit(0)
}
admin.Main()
}