@@ -30,17 +30,30 @@ func newGithubListRemoteCommand(tool string, repoConf github.RepoConfDef) *cobra
3030 return listRemoteGithub (cmd , tool , repoConf )
3131 },
3232 }
33+ // Bind flags to Viper keys so config file / env / flags work together.
3334 listRemoteCmd .Flags ().BoolVar (& includeDevel , "devel" , false , "Include pre-release versions (alpha, beta, rc)" )
35+ if err := viper .BindPFlag (fmt .Sprintf ("%s.list-remote.devel" , tool ), listRemoteCmd .Flags ().Lookup ("devel" )); err != nil {
36+ listRemoteCmd .PrintErr (err )
37+ panic (err )
38+ }
3439 listRemoteCmd .Flags ().IntVarP (& limit , "limit" , "l" , 0 , "Limit number of versions displayed" )
40+ if err := viper .BindPFlag (fmt .Sprintf ("%s.list-remote.limit" , tool ), listRemoteCmd .Flags ().Lookup ("limit" )); err != nil {
41+ listRemoteCmd .PrintErr (err )
42+ panic (err )
43+ }
3544 listRemoteCmd .Flags ().BoolVarP (& forceRefresh , "force" , "f" , false , "Force refresh of remote versions cache" )
45+ if err := viper .BindPFlag (fmt .Sprintf ("%s.list-remote.force" , tool ), listRemoteCmd .Flags ().Lookup ("force" )); err != nil {
46+ listRemoteCmd .PrintErr (err )
47+ panic (err )
48+ }
3649 return listRemoteCmd
3750}
3851
3952// listRemoteGithub lists all remote versions of the specified tool available as GitHub releases (sorted by semver)
4053func listRemoteGithub (cmd * cobra.Command , tool string , repoConf github.RepoConfDef ) error {
41- includeDevel = viper .GetBool (tool + "list-remote.devel" )
42- limit = viper .GetInt (tool + "list-remote.limit" )
43- forceRefresh = viper .GetBool (tool + "list-remote.force" )
54+ includeDevel = viper .GetBool (tool + ". list-remote.devel" )
55+ limit = viper .GetInt (tool + ". list-remote.limit" )
56+ forceRefresh = viper .GetBool (tool + ". list-remote.force" )
4457 ghc := github .New (nil )
4558 releasesData , err := ghc .FetchAllReleases (tool , github.FetchOptions {
4659 IncludeDevel : includeDevel ,
0 commit comments