fix(version): command line flag
This commit is contained in:
parent
3bdca8c540
commit
6092629cb4
@ -2,9 +2,10 @@ package cli
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"os"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Version string
|
type Version string
|
||||||
@ -27,12 +28,12 @@ func (v Version) Cmd(cmd *cobra.Command) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (v Version) Flag(cmd *cobra.Command) {
|
func (v Version) Flag(cmd *cobra.Command) {
|
||||||
cmd.PersistentFlags().Bool(versionFlag, false, "print version")
|
cmd.PersistentFlags().Count(versionFlag, "print version")
|
||||||
_ = viper.BindPFlag(versionFlag, cmd.PersistentFlags().Lookup(versionFlag))
|
_ = viper.BindPFlag(versionFlag, cmd.PersistentFlags().Lookup(versionFlag))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v Version) FlagHook() {
|
func (v Version) FlagHook() {
|
||||||
if viper.GetBool(versionFlag) {
|
if viper.GetInt(versionFlag) > 0 {
|
||||||
v.Print()
|
v.Print()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import (
|
|||||||
"gitea.suyono.dev/suyono/wingmate"
|
"gitea.suyono.dev/suyono/wingmate"
|
||||||
"gitea.suyono.dev/suyono/wingmate/config"
|
"gitea.suyono.dev/suyono/wingmate/config"
|
||||||
wminit "gitea.suyono.dev/suyono/wingmate/init"
|
wminit "gitea.suyono.dev/suyono/wingmate/init"
|
||||||
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -22,6 +23,10 @@ func main() {
|
|||||||
|
|
||||||
_ = wingmate.NewLog(os.Stderr)
|
_ = wingmate.NewLog(os.Stderr)
|
||||||
config.SetVersion(version)
|
config.SetVersion(version)
|
||||||
|
config.ParseFlags()
|
||||||
|
|
||||||
|
wingmate.Log().Info().Msgf("starting wingmate version %s", viper.GetString(config.WingmateVersion))
|
||||||
|
|
||||||
if cfg, err = config.Read(); err != nil {
|
if cfg, err = config.Read(); err != nil {
|
||||||
wingmate.Log().Error().Msgf("failed to read config %#v", err)
|
wingmate.Log().Error().Msgf("failed to read config %#v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -79,7 +79,6 @@ type CronSchedule struct {
|
|||||||
func SetVersion(version string) {
|
func SetVersion(version string) {
|
||||||
version = strings.TrimRight(version, versionTrimRightCutSet)
|
version = strings.TrimRight(version, versionTrimRightCutSet)
|
||||||
viper.Set(WingmateVersion, version)
|
viper.Set(WingmateVersion, version)
|
||||||
wingmate.Log().Info().Msgf("starting wingmate version %s", version)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Read() (*Config, error) {
|
func Read() (*Config, error) {
|
||||||
@ -91,8 +90,6 @@ func Read() (*Config, error) {
|
|||||||
viper.SetDefault(PidProxyPathConfig, PidProxyPathDefault)
|
viper.SetDefault(PidProxyPathConfig, PidProxyPathDefault)
|
||||||
viper.SetDefault(ExecPathConfig, ExecPathDefault)
|
viper.SetDefault(ExecPathConfig, ExecPathDefault)
|
||||||
|
|
||||||
ParseFlags()
|
|
||||||
|
|
||||||
var (
|
var (
|
||||||
dirent []os.DirEntry
|
dirent []os.DirEntry
|
||||||
err error
|
err error
|
||||||
|
|||||||
@ -1,12 +1,15 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ParseFlags() {
|
func ParseFlags() {
|
||||||
pflag.BoolP(VersionFlag, "v", false, "check version")
|
pflag.CountP(VersionFlag, "v", "check version")
|
||||||
pflag.String(WMPidProxyPathFlag, "", "wmpidproxy path")
|
pflag.String(WMPidProxyPathFlag, "", "wmpidproxy path")
|
||||||
pflag.String(WMExecPathFlag, "", "wmexec path")
|
pflag.String(WMExecPathFlag, "", "wmexec path")
|
||||||
pflag.StringP(ConfigPathFlag, "c", "", "config path")
|
pflag.StringP(ConfigPathFlag, "c", "", "config path")
|
||||||
@ -17,4 +20,9 @@ func ParseFlags() {
|
|||||||
_ = viper.BindPFlag(ConfigPath, pflag.CommandLine.Lookup(ConfigPathFlag))
|
_ = viper.BindPFlag(ConfigPath, pflag.CommandLine.Lookup(ConfigPathFlag))
|
||||||
_ = viper.BindPFlag(PidProxyPathConfig, pflag.CommandLine.Lookup(WMPidProxyPathFlag))
|
_ = viper.BindPFlag(PidProxyPathConfig, pflag.CommandLine.Lookup(WMPidProxyPathFlag))
|
||||||
_ = viper.BindPFlag(ExecPathConfig, pflag.CommandLine.Lookup(WMExecPathFlag))
|
_ = viper.BindPFlag(ExecPathConfig, pflag.CommandLine.Lookup(WMExecPathFlag))
|
||||||
|
|
||||||
|
if viper.GetInt(VersionCheckKey) > 0 {
|
||||||
|
fmt.Println(viper.GetString(WingmateVersion))
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user