cleaned up wingmate: unify version mechanism on all binaries

This commit is contained in:
Suyono 2024-09-19 19:17:09 +10:00
parent fe31698724
commit b83c3acc30
4 changed files with 12 additions and 12 deletions

View File

@ -5,6 +5,7 @@ import (
"os"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)
@ -28,9 +29,13 @@ func (v Version) Cmd(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)
cmd.PersistentFlags().Bool(versionFlag, false, "print version")
_ = viper.BindPFlag(versionFlag, cmd.PersistentFlags().Lookup(versionFlag))
fs.Bool(versionFlag, false, "print version")
_ = viper.BindPFlag(versionFlag, fs.Lookup(versionFlag))
}
func (v Version) FlagHook() {

View File

@ -62,7 +62,6 @@ func main() {
_ = viper.BindPFlag(EnvUser, rootCmd.PersistentFlags().Lookup(userFlag))
app.version.Flag(rootCmd)
app.version.Cmd(rootCmd)
viper.SetEnvPrefix(wingmate.EnvPrefix)
_ = viper.BindEnv(EnvUser)

View File

@ -27,11 +27,9 @@ const (
ExecPathConfig = "exec_path"
ExecPathDefault = "wmexec"
versionTrimRightCutSet = "\r\n "
VersionFlag = "version"
WMPidProxyPathFlag = "pid-proxy"
WMExecPathFlag = "exec"
PathConfigFlag = "config"
VersionCheckKey = "check-version"
)
type Config struct {

View File

@ -2,27 +2,25 @@ package config
import (
"fmt"
"os"
"gitea.suyono.dev/suyono/wingmate/cmd/cli"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)
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(WMExecPathFlag, "", "wmexec path")
pflag.StringP(PathConfigFlag, "c", "", "config path")
pflag.Parse()
_ = viper.BindPFlag(VersionCheckKey, pflag.CommandLine.Lookup(VersionFlag))
_ = viper.BindPFlag(PathConfig, pflag.CommandLine.Lookup(PathConfigFlag))
_ = viper.BindPFlag(PidProxyPathConfig, pflag.CommandLine.Lookup(WMPidProxyPathFlag))
_ = viper.BindPFlag(ExecPathConfig, pflag.CommandLine.Lookup(WMExecPathFlag))
if viper.GetInt(VersionCheckKey) > 0 {
fmt.Println(viper.GetString(WingmateVersion))
os.Exit(0)
}
version.FlagHook()
}