@@ -2,6 +2,7 @@ package main
22
33import (
44 "context"
5+ "errors"
56 "flag"
67 "fmt"
78 "github.com/christophwitzko/go-semantic-release"
@@ -13,6 +14,15 @@ import (
1314
1415var SRVERSION string
1516
17+ func errorHandler (logger * log.Logger ) func (error ) {
18+ return func (err error ) {
19+ if err != nil {
20+ logger .Println (err )
21+ os .Exit (1 )
22+ }
23+ }
24+ }
25+
1626func main () {
1727 token := flag .String ("token" , os .Getenv ("GITHUB_TOKEN" ), "github token" )
1828 slug := flag .String ("slug" , os .Getenv ("TRAVIS_REPO_SLUG" ), "slug of the repository" )
@@ -29,104 +39,60 @@ func main() {
2939 }
3040
3141 logger := log .New (os .Stderr , "[semantic-release]: " , 0 )
42+ exitIfError := errorHandler (logger )
3243
3344 if * token == "" {
34- logger .Println ("github token missing" )
35- os .Exit (1 )
36- return
45+ exitIfError (errors .New ("github token missing" ))
3746 }
3847 if * slug == "" {
39- logger .Println ("slug missing" )
40- os .Exit (1 )
41- return
48+ exitIfError (errors .New ("slug missing" ))
4249 }
4350
4451 repo , nerr := semrel .NewRepository (context .TODO (), * slug , * token )
45- if nerr != nil {
46- logger .Println (nerr )
47- os .Exit (1 )
48- return
49- }
52+ exitIfError (nerr )
5053
5154 logger .Println ("getting default branch..." )
5255 defaultBranch , isPrivate , derr := repo .GetInfo ()
53- if derr != nil {
54- logger .Println (derr )
55- os .Exit (1 )
56- return
57- }
56+ exitIfError (derr )
5857 logger .Println ("found default branch: " + defaultBranch )
5958
6059 if ! * noci {
6160 logger .Println ("running CI condition..." )
62- if err := condition .Travis (* token , defaultBranch , isPrivate ); err != nil {
63- logger .Println (err )
64- os .Exit (1 )
65- return
66- }
61+ exitIfError (condition .Travis (* token , defaultBranch , isPrivate ))
6762 }
6863
6964 logger .Println ("getting latest release..." )
7065 release , rerr := repo .GetLatestRelease ()
71- if rerr != nil {
72- logger .Println (rerr )
73- os .Exit (1 )
74- return
75- }
66+ exitIfError (rerr )
7667 if release .Version == nil {
77- logger .Println ("found invalid version" )
78- os .Exit (1 )
79- return
68+ exitIfError (errors .New ("found invalid version" ))
8069 }
8170 logger .Println ("found: " + release .Version .String ())
8271
8372 logger .Println ("getting commits..." )
8473 commits , cerr := repo .GetCommits ()
85- if cerr != nil {
86- logger .Println (cerr )
87- os .Exit (1 )
88- return
89- }
74+ exitIfError (cerr )
9075
9176 logger .Println ("calculating new version..." )
9277 newVer := semrel .GetNewVersion (commits , release )
9378 if newVer == nil {
94- logger .Println ("no change" )
95- os .Exit (1 )
96- return
79+ exitIfError (errors .New ("no change" ))
9780 }
9881 logger .Println ("new version: " + newVer .String ())
9982
10083 if * dry {
101- logger .Println ("DRY RUN: no release was created" )
102- os .Exit (1 )
103- return
84+ exitIfError (errors .New ("DRY RUN: no release was created" ))
10485 }
10586
10687 logger .Println ("creating release..." )
107- berr := repo .CreateRelease (commits , release , newVer )
108- if berr != nil {
109- logger .Println (berr )
110- os .Exit (1 )
111- return
112- }
88+ exitIfError (repo .CreateRelease (commits , release , newVer ))
11389
11490 if * ghr {
115- gerr := ioutil .WriteFile (".ghr" , []byte (fmt .Sprintf ("-u %s -r %s v%s" , repo .Owner , repo .Repo , newVer .String ())), 0644 )
116- if gerr != nil {
117- logger .Println (gerr )
118- os .Exit (1 )
119- return
120- }
91+ exitIfError (ioutil .WriteFile (".ghr" , []byte (fmt .Sprintf ("-u %s -r %s v%s" , repo .Owner , repo .Repo , newVer .String ())), 0644 ))
12192 }
12293
12394 if * vFile {
124- werr := ioutil .WriteFile (".version" , []byte (newVer .String ()), 0644 )
125- if werr != nil {
126- logger .Println (werr )
127- os .Exit (1 )
128- return
129- }
95+ exitIfError (ioutil .WriteFile (".version" , []byte (newVer .String ()), 0644 ))
13096 }
13197
13298 logger .Println ("done." )
0 commit comments