cleaned up wingmate: unify version mechanism on all binaries
This commit is contained in:
parent
fe31698724
commit
b83c3acc30
@ -5,6 +5,7 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
|
"github.com/spf13/pflag"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -28,9 +29,13 @@ func (v Version) Cmd(cmd *cobra.Command) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (v Version) Flag(cmd *cobra.Command) {
|
func (v Version) Flag(cmd *cobra.Command) {
|
||||||
|
v.FlagSet(cmd.PersistentFlags())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (v Version) FlagSet(fs *pflag.FlagSet) {
|
||||||
viper.SetDefault(versionFlag, false)
|
viper.SetDefault(versionFlag, false)
|
||||||
cmd.PersistentFlags().Bool(versionFlag, false, "print version")
|
fs.Bool(versionFlag, false, "print version")
|
||||||
_ = viper.BindPFlag(versionFlag, cmd.PersistentFlags().Lookup(versionFlag))
|
_ = viper.BindPFlag(versionFlag, fs.Lookup(versionFlag))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (v Version) FlagHook() {
|
func (v Version) FlagHook() {
|
||||||
|
|||||||
@ -62,7 +62,6 @@ func main() {
|
|||||||
_ = viper.BindPFlag(EnvUser, rootCmd.PersistentFlags().Lookup(userFlag))
|
_ = viper.BindPFlag(EnvUser, rootCmd.PersistentFlags().Lookup(userFlag))
|
||||||
|
|
||||||
app.version.Flag(rootCmd)
|
app.version.Flag(rootCmd)
|
||||||
app.version.Cmd(rootCmd)
|
|
||||||
|
|
||||||
viper.SetEnvPrefix(wingmate.EnvPrefix)
|
viper.SetEnvPrefix(wingmate.EnvPrefix)
|
||||||
_ = viper.BindEnv(EnvUser)
|
_ = viper.BindEnv(EnvUser)
|
||||||
|
|||||||
@ -27,11 +27,9 @@ const (
|
|||||||
ExecPathConfig = "exec_path"
|
ExecPathConfig = "exec_path"
|
||||||
ExecPathDefault = "wmexec"
|
ExecPathDefault = "wmexec"
|
||||||
versionTrimRightCutSet = "\r\n "
|
versionTrimRightCutSet = "\r\n "
|
||||||
VersionFlag = "version"
|
|
||||||
WMPidProxyPathFlag = "pid-proxy"
|
WMPidProxyPathFlag = "pid-proxy"
|
||||||
WMExecPathFlag = "exec"
|
WMExecPathFlag = "exec"
|
||||||
PathConfigFlag = "config"
|
PathConfigFlag = "config"
|
||||||
VersionCheckKey = "check-version"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
|
|||||||
@ -2,27 +2,25 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
|
||||||
|
|
||||||
|
"gitea.suyono.dev/suyono/wingmate/cmd/cli"
|
||||||
"github.com/spf13/pflag"
|
"github.com/spf13/pflag"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ParseFlags() {
|
func ParseFlags() {
|
||||||
pflag.CountP(VersionFlag, "v", "check version")
|
version := cli.Version(fmt.Sprintln(viper.GetString(WingmateVersion)))
|
||||||
|
version.FlagSet(pflag.CommandLine)
|
||||||
|
|
||||||
pflag.String(WMPidProxyPathFlag, "", "wmpidproxy path")
|
pflag.String(WMPidProxyPathFlag, "", "wmpidproxy path")
|
||||||
pflag.String(WMExecPathFlag, "", "wmexec path")
|
pflag.String(WMExecPathFlag, "", "wmexec path")
|
||||||
pflag.StringP(PathConfigFlag, "c", "", "config path")
|
pflag.StringP(PathConfigFlag, "c", "", "config path")
|
||||||
|
|
||||||
pflag.Parse()
|
pflag.Parse()
|
||||||
|
|
||||||
_ = viper.BindPFlag(VersionCheckKey, pflag.CommandLine.Lookup(VersionFlag))
|
|
||||||
_ = viper.BindPFlag(PathConfig, pflag.CommandLine.Lookup(PathConfigFlag))
|
_ = viper.BindPFlag(PathConfig, pflag.CommandLine.Lookup(PathConfigFlag))
|
||||||
_ = 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 {
|
version.FlagHook()
|
||||||
fmt.Println(viper.GetString(WingmateVersion))
|
|
||||||
os.Exit(0)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user