Skip to content

Commit fddd7d2

Browse files
committed
cmd/ie/commands/to-bash: Propagate error instead of exiting
Signed-off-by: Jose Blanquicet <josebl@microsoft.com>
1 parent c2b82cb commit fddd7d2

1 file changed

Lines changed: 7 additions & 18 deletions

File tree

cmd/ie/commands/to-bash.go

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ package commands
22

33
import (
44
"encoding/json"
5+
"errors"
56
"fmt"
6-
"os"
77
"strings"
88

99
"github.com/Azure/InnovationEngine/internal/engine"
10-
"github.com/Azure/InnovationEngine/internal/logging"
1110
"github.com/spf13/cobra"
1211
)
1312

@@ -18,12 +17,10 @@ type OcdScript struct {
1817
var toBashCommand = &cobra.Command{
1918
Use: "to-bash",
2019
Short: "Convert a markdown scenario into a bash script.",
21-
Run: func(cmd *cobra.Command, args []string) {
20+
RunE: func(cmd *cobra.Command, args []string) error {
2221
markdownFile := args[0]
2322
if markdownFile == "" {
24-
logging.GlobalLogger.Errorf("Error: No markdown file specified.")
25-
cmd.Help()
26-
os.Exit(1)
23+
return errors.New("no markdown file specified")
2724
}
2825

2926
environment, _ := cmd.Flags().GetString("environment")
@@ -34,10 +31,7 @@ var toBashCommand = &cobra.Command{
3431
for _, environmentVariable := range environmentVariables {
3532
keyValuePair := strings.SplitN(environmentVariable, "=", 2)
3633
if len(keyValuePair) != 2 {
37-
logging.GlobalLogger.Errorf("Error: Invalid environment variable format: %s", environmentVariable)
38-
fmt.Printf("Error: Invalid environment variable format: %s", environmentVariable)
39-
cmd.Help()
40-
os.Exit(1)
34+
return fmt.Errorf("invalid environment variable format: %s", environmentVariable)
4135
}
4236

4337
cliEnvironmentVariables[keyValuePair[0]] = keyValuePair[1]
@@ -48,28 +42,23 @@ var toBashCommand = &cobra.Command{
4842
markdownFile,
4943
[]string{"bash", "azurecli", "azurecli-interactive", "terraform"},
5044
cliEnvironmentVariables)
51-
5245
if err != nil {
53-
logging.GlobalLogger.Errorf("Error creating scenario: %s", err)
54-
fmt.Printf("Error creating scenario: %s", err)
55-
os.Exit(0)
46+
return fmt.Errorf("creating scenario: %w", err)
5647
}
5748

5849
if environment == "ocd" {
5950
script := OcdScript{Script: scenario.ToShellScript()}
6051
scriptJson, err := json.Marshal(script)
61-
6252
if err != nil {
63-
logging.GlobalLogger.Errorf("Error converting to json: %s", err)
64-
fmt.Printf("Error converting to json: %s", err)
65-
os.Exit(1)
53+
return fmt.Errorf("converting to json: %w", err)
6654
}
6755

6856
fmt.Printf("ie_us%sie_ue\n", scriptJson)
6957
} else {
7058
fmt.Printf("%s", scenario.ToShellScript())
7159
}
7260

61+
return nil
7362
},
7463
}
7564

0 commit comments

Comments
 (0)