@@ -2,59 +2,80 @@ package main
22
33import (
44 "fmt"
5+ "os"
6+ "path/filepath"
7+
58 "github.com/psmarcin/jira-versioner/pkg/git"
69 "github.com/psmarcin/jira-versioner/pkg/jira"
710 "github.com/spf13/cobra"
811 "go.uber.org/zap"
9- "os"
10- "path/filepath"
1112)
1213
13- var (
14- rootCmd = & cobra.Command {
14+ func main () {
15+ rootCmd : = & cobra.Command {
1516 Use : "jira-versioner" ,
1617 Short : "A simple version setter for Jira tasks since last version" ,
1718 Long : `A solution for automatically create version,
1819link all issues from commits to newly created version.
1920All automatically.` ,
2021 Run : rootFunc ,
2122 }
22- )
23-
24- func init () {
2523 // get current directory path
2624 ex , err := os .Executable ()
2725 if err != nil {
2826 panic (err )
2927 }
3028 pwd := filepath .Dir (ex )
3129
32- //rootCmd.Flags().StringP("verbose", "v", "info", "")
3330 rootCmd .Flags ().StringP ("jira-version" , "v" , "" , "Version name for Jira" )
3431 rootCmd .Flags ().StringP ("tag" , "t" , "" , "Existing git tag" )
3532 rootCmd .Flags ().StringP ("jira-email" , "e" , "" , "Jira email" )
3633 rootCmd .Flags ().StringP ("jira-token" , "k" , "" , "Jira token/key/password" )
3734 rootCmd .Flags ().StringP ("jira-project" , "p" , "" , "Jira project, it has to be ID, example: 10003" )
3835 rootCmd .Flags ().StringP ("jira-base-url" , "u" , "" , "Jira service base url, example: https://example.atlassian.net" )
3936 rootCmd .Flags ().StringP ("dir" , "d" , pwd , "Absolute directory path to git repository" )
40- rootCmd .Flags ().BoolP ("dry-run" , "" , false , "Enable dry run mode" )
41- rootCmd .MarkFlagRequired ("tag" )
42- rootCmd .MarkFlagRequired ("jira-email" )
43- rootCmd .MarkFlagRequired ("jira-token" )
44- rootCmd .MarkFlagRequired ("jira-project" )
45- rootCmd .MarkFlagRequired ("jira-base-url" )
37+ _ = rootCmd .Flags ().BoolP ("dry-run" , "" , false , "Enable dry run mode" )
38+
39+ err = rootCmd .MarkFlagRequired ("tag" )
40+ if err != nil {
41+ fmt .Printf ("err: %+v" , err )
42+ os .Exit (1 )
43+ }
44+ err = rootCmd .MarkFlagRequired ("jira-email" )
45+ if err != nil {
46+ fmt .Printf ("err: %+v" , err )
47+ os .Exit (1 )
48+ }
49+ err = rootCmd .MarkFlagRequired ("jira-token" )
50+ if err != nil {
51+ fmt .Printf ("err: %+v" , err )
52+ os .Exit (1 )
53+ }
54+ err = rootCmd .MarkFlagRequired ("jira-project" )
55+ if err != nil {
56+ fmt .Printf ("err: %+v" , err )
57+ os .Exit (1 )
58+ }
59+ err = rootCmd .MarkFlagRequired ("jira-base-url" )
60+ if err != nil {
61+ fmt .Printf ("err: %+v" , err )
62+ os .Exit (1 )
63+ }
4664
4765 rootCmd .Example = "jira-versioner -e jira@example.com -k pa$$wor0 -p 10003 -t v1.1.0 -u https://example.atlassian.net"
48- }
4966
50- func main () {
51- Execute ()
67+ if err = rootCmd .Execute (); err != nil {
68+ fmt .Println (err )
69+ os .Exit (1 )
70+ }
5271}
5372
54- func rootFunc (c * cobra.Command , args []string ) {
73+ func rootFunc (c * cobra.Command , _ []string ) {
5574 log := zap .NewExample ().Sugar ()
5675 dryRun := false
57- defer log .Sync ()
76+ defer func () {
77+ _ = log .Sync ()
78+ }()
5879
5980 tag := c .Flag ("tag" ).Value .String ()
6081
@@ -66,42 +87,44 @@ func rootFunc(c *cobra.Command, args []string) {
6687 jiraEmail := c .Flag ("jira-email" ).Value .String ()
6788 jiraToken := c .Flag ("jira-token" ).Value .String ()
6889 jiraProject := c .Flag ("jira-project" ).Value .String ()
69- jiraBaseUrl := c .Flag ("jira-base-url" ).Value .String ()
90+ jiraBaseURL := c .Flag ("jira-base-url" ).Value .String ()
7091 dryRunRaw := c .Flag ("dry-run" ).Value .String ()
7192 if dryRunRaw == "true" {
7293 dryRun = true
7394 }
7495 gitDir := c .Flag ("dir" ).Value .String ()
7596
7697 log .Debugf (
77- "[JIRA-VERSIONER] starting with params jira-email: %s, jira-token: %s, jira-project: %s, jira-base-url: %s, dir: %s, tag: %s, jira-version: %s, dry-run: %t" ,
78- jiraEmail ,
79- jiraToken ,
80- jiraProject ,
81- jiraBaseUrl ,
82- gitDir ,
83- tag ,
84- version ,
85- dryRun ,
98+ "[JIRA-VERSIONER] starting with parameters: %+v" ,
99+ map [string ]interface {}{
100+ "jiraEmail" : jiraEmail ,
101+ "jiraToken" : jiraToken ,
102+ "jiraProject" : jiraProject ,
103+ "jiraBaseURL" : jiraBaseURL ,
104+ "gitDir" : gitDir ,
105+ "tag" : tag ,
106+ "version" : version ,
107+ "dryRun" : dryRun ,
108+ },
86109 )
87110 log .Infof ("[JIRA-VERSIONER] git directory: %s" , gitDir )
88111
89112 g := git .New (gitDir , log )
90113
91114 tasks , err := g .GetTasks (tag )
92115 if err != nil {
93- log .Fatalf ("[GIT] error while getting tasks since latest commit %+v" , err )
116+ log .Fatalf ("[GIT] error while getting tasks since latest commit %+v" , err ) // nolint
94117 }
95118
96- var jiraConfig = jira.NewConfig {
119+ var jiraConfig = jira.Config {
97120 Username : jiraEmail ,
98121 Token : jiraToken ,
99122 ProjectID : jiraProject ,
100- BaseURL : jiraBaseUrl ,
123+ BaseURL : jiraBaseURL ,
101124 Log : log ,
102125 DryRun : dryRun ,
103126 }
104- j , err := jira .New (jiraConfig )
127+ j , err := jira .New (& jiraConfig )
105128 if err != nil {
106129 log .Fatalf ("[VERSION] error while connecting to jira server %+v" , err )
107130 }
@@ -115,10 +138,3 @@ func rootFunc(c *cobra.Command, args []string) {
115138
116139 log .Infof ("[JIRA-VERSIONER] done ✅" )
117140}
118-
119- func Execute () {
120- if err := rootCmd .Execute (); err != nil {
121- fmt .Println (err )
122- os .Exit (1 )
123- }
124- }
0 commit comments