package args

import (
	"errors"
	"os"

	"git.trj.tw/golang/argparse"
)

type Args struct {
	ConfigPath string
	DBTool     bool
	Run        string
}

var a *Args

func Parse() error {
	a = &Args{}

	parser := argparse.New()

	parser.StringVar(&a.ConfigPath, "", "c", "config", "config file path", nil)
	parser.StringVar(&a.Run, "server", "r", "run", "run mode [server, dbtool], default server", nil)
	parser.BoolVar(&a.DBTool, false, "d", "dbtool", "run db migration", nil)
	parser.Help("h", "help")

	return parser.Parse(os.Args)
}

func Get() *Args {
	if a == nil {
		panic(errors.New("arguments not init"))
	}
	return a
}
