@@ -3,7 +3,6 @@ package main
33import (
44 "errors"
55 "fmt"
6- "io/ioutil"
76 "log"
87 "os"
98 "os/signal"
@@ -23,22 +22,23 @@ import (
2322// SRVERSION is the semantic-release version (added at compile time)
2423var SRVERSION string
2524
25+ var logger = log .New (os .Stderr , "[go-semantic-release]: " , 0 )
26+
2627var exitHandler func ()
2728
28- func errorHandler (logger * log.Logger ) func (error , ... int ) {
29- return func (err error , exitCode ... int ) {
30- if err != nil {
31- logger .Println (err )
32- if exitHandler != nil {
33- exitHandler ()
34- }
35- if len (exitCode ) == 1 {
36- os .Exit (exitCode [0 ])
37- return
38- }
39- os .Exit (1 )
40- }
29+ func exitIfError (err error , exitCode ... int ) {
30+ if err == nil {
31+ return
32+ }
33+ logger .Println (err )
34+ if exitHandler != nil {
35+ exitHandler ()
4136 }
37+ if len (exitCode ) == 1 {
38+ os .Exit (exitCode [0 ])
39+ return
40+ }
41+ os .Exit (1 )
4242}
4343
4444func main () {
@@ -53,14 +53,14 @@ func main() {
5353 cobra .OnInitialize (func () {
5454 err := config .InitConfig (cmd )
5555 if err != nil {
56- fmt .Printf ("\n Config error: %s\n " , err .Error ())
56+ logger .Printf ("Config error: %s" , err .Error ())
5757 os .Exit (1 )
5858 return
5959 }
6060 })
6161 err := cmd .Execute ()
6262 if err != nil {
63- fmt .Printf ("\n %s \n " , err .Error ())
63+ logger .Printf ("ERROR: %s " , err .Error ())
6464 os .Exit (1 )
6565 }
6666}
@@ -69,19 +69,17 @@ func mergeConfigWithDefaults(defaults, conf map[string]string) {
6969 for k , v := range conf {
7070 defaults [k ] = v
7171 // case-insensitive overwrite default values
72- kLower := strings .ToLower (k )
72+ keyLower := strings .ToLower (k )
7373 for dk := range defaults {
74- if strings .ToLower (dk ) == kLower && dk != k {
74+ if strings .ToLower (dk ) == keyLower && dk != k {
7575 defaults [dk ] = v
7676 }
7777 }
7878 }
7979}
8080
81+ //gocyclo:ignore
8182func cliHandler (cmd * cobra.Command , args []string ) {
82- logger := log .New (os .Stderr , "[go-semantic-release]: " , 0 )
83- exitIfError := errorHandler (logger )
84-
8583 logger .Printf ("version: %s\n " , SRVERSION )
8684
8785 conf , err := config .NewConfig (cmd )
@@ -98,14 +96,15 @@ func cliHandler(cmd *cobra.Command, args []string) {
9896 c := make (chan os.Signal , 1 )
9997 signal .Notify (c , os .Interrupt , syscall .SIGTERM )
10098 go func () {
101- <- c
102- exitIfError (errors .New ("terminating..." ))
99+ termSignal := <- c
100+ logger .Println ("terminating..." )
101+ exitIfError (fmt .Errorf ("received signal: %s" , termSignal ))
103102 }()
104103
105104 if conf .DownloadPlugins {
106105 exitIfError (pluginManager .FetchAllPlugins ())
107106 logger .Println ("all plugins are downloaded" )
108- os . Exit ( 0 )
107+ return
109108 }
110109
111110 ci , err := pluginManager .GetCICondition ()
@@ -255,18 +254,18 @@ func cliHandler(cmd *cobra.Command, args []string) {
255254 if conf .Changelog != "" {
256255 oldFile := make ([]byte , 0 )
257256 if conf .PrependChangelog {
258- oldFileData , err := ioutil .ReadFile (conf .Changelog )
257+ oldFileData , err := os .ReadFile (conf .Changelog )
259258 if err == nil {
260259 oldFile = append ([]byte ("\n " ), oldFileData ... )
261260 }
262261 }
263262 changelogData := append ([]byte (changelogRes ), oldFile ... )
264- exitIfError (ioutil .WriteFile (conf .Changelog , changelogData , 0o644 ))
263+ exitIfError (os .WriteFile (conf .Changelog , changelogData , 0o644 ))
265264 }
266265
267266 if conf .Dry {
268267 if conf .VersionFile {
269- exitIfError (ioutil .WriteFile (".version-unreleased" , []byte (newVer ), 0o644 ))
268+ exitIfError (os .WriteFile (".version-unreleased" , []byte (newVer ), 0o644 ))
270269 }
271270 exitIfError (errors .New ("DRY RUN: no release was created" ), 0 )
272271 }
@@ -282,11 +281,11 @@ func cliHandler(cmd *cobra.Command, args []string) {
282281 exitIfError (prov .CreateRelease (newRelease ))
283282
284283 if conf .Ghr {
285- exitIfError (ioutil .WriteFile (".ghr" , []byte (fmt .Sprintf ("-u %s -r %s v%s" , repoInfo .Owner , repoInfo .Repo , newVer )), 0o644 ))
284+ exitIfError (os .WriteFile (".ghr" , []byte (fmt .Sprintf ("-u %s -r %s v%s" , repoInfo .Owner , repoInfo .Repo , newVer )), 0o644 ))
286285 }
287286
288287 if conf .VersionFile {
289- exitIfError (ioutil .WriteFile (".version" , []byte (newVer ), 0o644 ))
288+ exitIfError (os .WriteFile (".version" , []byte (newVer ), 0o644 ))
290289 }
291290
292291 if len (conf .UpdateFiles ) == 0 && len (conf .FilesUpdaterPlugins ) > 0 {
0 commit comments