11package cmd
22
33import (
4+ "fmt"
45 "github.com/Graylog2/graylog-project-cli/apply"
56 "github.com/Graylog2/graylog-project-cli/config"
67 "github.com/Graylog2/graylog-project-cli/logger"
78 "github.com/Graylog2/graylog-project-cli/manifest"
89 "github.com/Graylog2/graylog-project-cli/project"
910 "github.com/Graylog2/graylog-project-cli/projectstate"
11+ "github.com/Graylog2/graylog-project-cli/utils"
1012 "github.com/fatih/color"
1113 "github.com/spf13/cobra"
12- "os "
14+ "strings "
1315)
1416
1517var graylogVersionCmd = & cobra.Command {
@@ -29,24 +31,40 @@ Examples:
2931}
3032
3133var graylogVersion string
34+ var graylogVersionShort bool
35+ var graylogVersionTruncate bool
3236
3337func init () {
3438 RootCmd .AddCommand (graylogVersionCmd )
3539
36- graylogVersionCmd .Flags ().StringVarP (& graylogVersion , "set" , "" , "" , "Set Graylog version" )
40+ graylogVersionCmd .Flags ().StringVar (& graylogVersion , "set" , "" , "Set Graylog version" )
41+ graylogVersionCmd .Flags ().BoolVarP (& graylogVersionShort , "short" , "s" , false , "Only show the version number(s)" )
42+ graylogVersionCmd .Flags ().BoolVarP (& graylogVersionTruncate , "truncate" , "t" , false , "Truncate any -SNAPSHOT suffix from the version" )
3743}
3844
3945func graylogVersionCommand (cmd * cobra.Command , args []string ) {
40- if graylogVersion == "" {
41- logger .Info ("Missing version option for --set" )
42- cmd .UsageFunc ()(cmd )
43- os .Exit (1 )
44- }
45-
4646 cfg := config .Get ()
4747 manifestFiles := manifest .ReadState ().Files ()
4848 proj := project .New (cfg , manifestFiles )
4949
50+ if graylogVersion == "" {
51+ project .ForEachSelectedModule (proj , func (module project.Module ) {
52+ utils .InDirectory (module .Path , func () {
53+ version := module .Version ()
54+ if graylogVersionTruncate {
55+ version = strings .TrimSuffix (module .Version (), "-SNAPSHOT" )
56+ }
57+ if graylogVersionShort {
58+ fmt .Println (version )
59+ } else {
60+ url , _ := utils .ParseGitHubURL (module .Repository )
61+ logger .Info ("%-50s %s" , strings .TrimSuffix (url .Repository , ".git" ), version )
62+ }
63+ })
64+ })
65+ return
66+ }
67+
5068 msg := func (message string ) {
5169 logger .ColorInfo (color .FgYellow , "===> %s" , message )
5270 }
0 commit comments