package config

import (
	"flag"
	"strings"
)

var options *Options

// ------------------------启动命令配置
type Options struct {
	ShowVersion bool
	Cmd         string
	ConfFile    string
	App         string
	PidDir      string
	Queue       string
	Command     string
}

func parseOptions() *Options {
	opts := new(Options)
	flag.BoolVar(&opts.ShowVersion, "v", false, "show version")
	flag.StringVar(&opts.App, "a", "admin", "application to run")
	flag.StringVar(&opts.Cmd, "k", "", "status|stop|restart")
	flag.StringVar(&opts.ConfFile, "c", ".env", "conf file path")
	flag.StringVar(&opts.PidDir, "p", "/var/run/", "pid directory")
	flag.StringVar(&opts.Queue, "queue", "", "topic of queue is enable")
	flag.StringVar(&opts.Command, "m", "", "command name")
	flag.Parse()
	return opts
}

// 获取启动命令配置
func GetOptions() *Options {
	if options == nil {
		options = parseOptions()
	}
	return options
}

// pid进程号的保存路径
func (opts *Options) GenPidFile() string {
	return strings.TrimRight(opts.PidDir, "/") + "/" + opts.App + ".pid"
}