89 lines
1.9 KiB
Go
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()
|
|
}
|