From 139c87271378ac806a9e855094be6e790447a705 Mon Sep 17 00:00:00 2001
From: Massimiliano Adamo <massimiliano.adamo@geant.org>
Date: Tue, 13 Apr 2021 11:50:53 +0200
Subject: [PATCH] make code comply with SonarQube

---
 main.go | 54 +++++++++++++++++++++++++++++-------------------------
 1 file changed, 29 insertions(+), 25 deletions(-)

diff --git a/main.go b/main.go
index ae0a4a7..ac4926a 100644
--- a/main.go
+++ b/main.go
@@ -20,6 +20,9 @@ import (
 	"github.com/tidwall/gjson"
 )
 
+const errMsg string = "[ERR]"
+const infoMsg string = "[INFO]"
+
 var (
 	appVersion                string
 	buildTime                 string
@@ -56,6 +59,7 @@ func appExit(status int) {
 	}
 	err := os.RemoveAll(certTmpDir)
 	if err != nil {
+		fmt.Printf("%v could not delete temporary directory: %v\n", errMsg, err)
 	}
 	os.Exit(status)
 }
@@ -69,7 +73,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	certPEM, err := ioutil.ReadFile(certificate)
 	if err != nil {
 		if fail == true {
-			fmt.Printf("[ERR] %v\n", err)
+			fmt.Printf("%v %v\n", errMsg, err)
 			appExit(255)
 		} else {
 			return false
@@ -79,7 +83,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	certFullchainPEM, err := ioutil.ReadFile(fullchain)
 	if err != nil {
 		if fail == true {
-			fmt.Printf("[ERR] %v\n", err)
+			fmt.Printf("%v %v\n", errMsg, err)
 			appExit(255)
 		} else {
 			return false
@@ -89,7 +93,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	rootPEM, err := ioutil.ReadFile(ca)
 	if err != nil {
 		if fail == true {
-			fmt.Printf("[ERR] %v\n", err)
+			fmt.Printf("%v %v\n", errMsg, err)
 			appExit(255)
 		} else {
 			return false
@@ -100,7 +104,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	ok := roots.AppendCertsFromPEM([]byte(rootPEM))
 	if !ok {
 		if fail == true {
-			fmt.Printf("[ERR] failed to parse root certificate\n")
+			fmt.Printf("%v failed to parse root certificate\n", errMsg)
 			appExit(255)
 		} else {
 			return false
@@ -110,7 +114,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	block, _ := pem.Decode([]byte(certPEM))
 	if block == nil {
 		if fail == true {
-			fmt.Printf("[ERR] failed to parse certificate PEM\n")
+			fmt.Printf("%v failed to parse certificate PEM\n", errMsg)
 			appExit(255)
 		} else {
 			return false
@@ -120,7 +124,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	cert, err := x509.ParseCertificate(block.Bytes)
 	if err != nil {
 		if fail == true {
-			fmt.Printf("[ERR] failed to parse certificate %v\n", err)
+			fmt.Printf("%v failed to parse certificate %v\n", errMsg, err)
 			appExit(255)
 		} else {
 			return false
@@ -130,7 +134,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	fullchainBlock, _ := pem.Decode([]byte(certFullchainPEM))
 	if fullchainBlock == nil {
 		if fail == true {
-			fmt.Printf("[ERR] failed to parse certificate PEM\n")
+			fmt.Printf("%v failed to parse certificate PEM\n", errMsg)
 			appExit(255)
 		} else {
 			return false
@@ -139,7 +143,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	fullchainCert, fullchainErr := x509.ParseCertificate(fullchainBlock.Bytes)
 	if fullchainErr != nil {
 		if fail == true {
-			fmt.Printf("[ERR] failed to parse certificate %v\n", fullchainErr)
+			fmt.Printf("%v failed to parse certificate %v\n", errMsg, fullchainErr)
 			appExit(255)
 		} else {
 			return false
@@ -155,7 +159,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 
 	if _, err := cert.Verify(opts); err != nil {
 		if fail == true {
-			fmt.Printf("[ERR] failed to parse certificate %v\n", err.Error())
+			fmt.Printf("%v failed to parse certificate %v\n", errMsg, err.Error())
 			appExit(255)
 		} else {
 			return false
@@ -163,7 +167,7 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 	}
 	if _, fullchainErr := fullchainCert.Verify(opts); fullchainErr != nil {
 		if fail == true {
-			fmt.Printf("[ERR] failed to parse certificate %v\n", err.Error())
+			fmt.Printf("%v failed to parse certificate %v\n", errMsg, err.Error())
 		} else {
 			return false
 		}
@@ -175,13 +179,13 @@ func checkCertificates(dnsname string, certificate string, fullchain string, ca
 func checkPrivkey(privkey string, pubkey string, fail bool) bool {
 	_, errFileExist := os.Stat(privkey)
 	if os.IsNotExist(errFileExist) {
-		fmt.Printf("[ERR] could not access the private key %v\n", privkey)
+		fmt.Printf("%v could not access the private key %v\n", errMsg, privkey)
 		appExit(255)
 	}
 	_, err := tls.LoadX509KeyPair(pubkey, privkey)
 	if fail == true {
 		if err != nil {
-			fmt.Printf("[ERR] the private key %v does not match the the public certificate %v\n", privkey, pubkey)
+			fmt.Printf("%v the private key %v does not match the the public certificate %v\n", errMsg, privkey, pubkey)
 			appExit(255)
 		} else {
 			return false
@@ -195,19 +199,19 @@ func GetRedisKey(redisurl string, redistoken string) string {
 	client := &http.Client{}
 	req, err := http.NewRequest("GET", redisurl, nil)
 	if err != nil {
-		fmt.Printf("[ERR] Fail to read %v: %v\n", redisurl, err)
+		fmt.Printf("%v Fail to read %v: %v\n", errMsg, redisurl, err)
 		appExit(255)
 	}
 	req.SetBasicAuth("redis", redistoken)
 	resp, err := client.Do(req)
 	body, err := ioutil.ReadAll(resp.Body)
 	if resp.StatusCode < 200 || resp.StatusCode > 299 {
-		fmt.Printf("[ERR] Fail to fetch %v\n", redisurl)
+		fmt.Printf("%v Fail to fetch %v\n", errMsg, redisurl)
 		appExit(255)
 	}
 	defer resp.Body.Close()
 	if err != nil {
-		fmt.Printf("[ERR] Fail to read %v: %v\n", redisurl, err)
+		fmt.Printf("%v Fail to read %v: %v\n", errMsg, redisurl, err)
 		appExit(255)
 	}
 	return fmt.Sprintf(string(body))
@@ -218,19 +222,19 @@ func GetVaultKey(vaulturl string, vaulttoken string) string {
 	vaultClient := &http.Client{}
 	req, err := http.NewRequest("GET", vaulturl, nil)
 	if err != nil {
-		fmt.Printf("[ERR] Fail to read %v: %v\n", vaulturl, err)
+		fmt.Printf("%v Fail to read %v: %v\n", errMsg, vaulturl, err)
 		appExit(255)
 	}
 	req.Header.Add("X-vault-token", vaulttoken)
 	resp, err := vaultClient.Do(req)
 	body, err := ioutil.ReadAll(resp.Body)
 	if resp.StatusCode < 200 || resp.StatusCode > 299 {
-		fmt.Printf("[ERR] Fail to fetch %v\n", vaulturl)
+		fmt.Printf("%v Fail to fetch %v\n", errMsg, vaulturl)
 		appExit(255)
 	}
 	defer resp.Body.Close()
 	if err != nil {
-		fmt.Printf("[ERR] Fail to read %v: %v\n", vaulturl, err)
+		fmt.Printf("%v Fail to read %v: %v\n", errMsg, vaulturl, err)
 		appExit(255)
 	}
 	return gjson.Get(string(body), "data.value").String()
@@ -245,7 +249,7 @@ func WriteToFile(content string, destination string, filemode os.FileMode) {
 
 	file, err := os.OpenFile(destination, os.O_WRONLY|os.O_CREATE, filemode)
 	if err != nil {
-		fmt.Printf("[ERR] %v cannot be created\n", destination)
+		fmt.Printf("%v %v cannot be created\n", errMsg, destination)
 		appExit(255)
 	}
 
@@ -261,17 +265,17 @@ func moveFile(source string, destination string, groupid int, filemode os.FileMo
 	}
 	err := os.Rename(source, destination)
 	if err != nil {
-		fmt.Printf("[ERR] Fail to install %v: %v\n", destination, err)
+		fmt.Printf("%v Fail to install %v: %v\n", errMsg, destination, err)
 		appExit(255)
 	}
 	if runtime.GOOS != "windows" {
 		err = os.Chown(destination, 0, groupid)
 		if err != nil {
-			fmt.Printf("[ERR] Changing file owner to %v", groupid)
+			fmt.Printf("%v Changing file owner to %v", errMsg, groupid)
 			appExit(255)
 		}
 	}
-	fmt.Printf("[INFO] installed: %v\n", destination)
+	fmt.Printf("%v installed: %v\n", infoMsg, destination)
 }
 
 // ReadOSRelease from /etc/os-release
@@ -361,7 +365,7 @@ Options:
 		tmpKeyDestination = "/tmp/acme-downloader/key/amce_key.pem"
 		group, groupErr := user.LookupGroup(GroupName)
 		if groupErr != nil {
-			fmt.Printf("[ERR] Fail looking up %v user user info\n", GroupName)
+			fmt.Printf("%v Fail looking up %v user user info\n", errMsg, GroupName)
 			appExit(255)
 		}
 		GroupID, _ = strconv.Atoi(group.Gid)
@@ -376,7 +380,7 @@ Options:
 	DayString := arguments["--days"].(string)
 	Days, daysErr := strconv.Atoi(DayString)
 	if daysErr != nil {
-		fmt.Printf("[ERR] Days mut be an integer\n")
+		fmt.Printf("%v Days mut be an integer\n", errMsg)
 		appExit(255)
 	}
 	RedisBaseURL = "https://redis.geant.org/GET"
@@ -418,7 +422,7 @@ Options:
 	existingCert := checkCertificates(CertName, certificateDestination, fullchainDestination, caDestination, keyDestination, Days, false)
 	existingKey := checkPrivkey(keyDestination, certificateDestination, false)
 	if existingCert == true && existingKey == true {
-		fmt.Printf("[INFO] the certificate is still valid\n")
+		fmt.Printf("%v the certificate is still valid\n", infoMsg)
 		appExit(0)
 	}
 	certificate := GetRedisKey(RedisCertURL, RedisToken)
-- 
GitLab