Skip to content

Commit 24d0dd7

Browse files
- Fixed go imports
- Added additional checks for not null flag name if given
1 parent ac51713 commit 24d0dd7

8 files changed

Lines changed: 47 additions & 12 deletions

File tree

internal/commands/asca/asca-engine.go

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,14 @@ import (
77
"github.com/checkmarx/ast-cli/internal/wrappers"
88
"github.com/checkmarx/ast-cli/internal/wrappers/grpcs"
99
"github.com/checkmarx/ast-cli/internal/wrappers/utils"
10+
"github.com/pkg/errors"
1011
"github.com/spf13/cobra"
1112
"github.com/spf13/viper"
13+
"strings"
14+
)
15+
16+
const (
17+
ascaLocationParam = "asca-location"
1218
)
1319

1420
func RunScanASCACommand(jwtWrapper wrappers.JWTWrapper) func(cmd *cobra.Command, args []string) error {
@@ -18,12 +24,18 @@ func RunScanASCACommand(jwtWrapper wrappers.JWTWrapper) func(cmd *cobra.Command,
1824
fileSourceFlag, _ := cmd.Flags().GetString(commonParams.SourcesFlag)
1925
ignoredFilePathFlag, _ := cmd.Flags().GetString(commonParams.IgnoredFilePathFlag)
2026
agent, _ := cmd.Flags().GetString(commonParams.AgentFlag)
21-
vorpal := viper.GetString(commonParams.VorpalCustomPathKey)
27+
err := validateASCALocationFlags(cmd)
28+
if err != nil {
29+
return err
30+
}
31+
32+
vorpal := strings.TrimSpace(viper.GetString(commonParams.VorpalCustomPathKey))
2233
if vorpal != "" {
2334
vorpalLocation = vorpal
24-
} else if location := utils.GetOptionalParam(commonParams.ASCALocationFlag); location != "" {
35+
} else if location := utils.GetOptionalParam(ascaLocationParam); location != "" {
2536
vorpalLocation = location
2637
}
38+
2739
var port = viper.GetInt(commonParams.ASCAPortKey)
2840
ASCAWrapper := grpcs.NewASCAGrpcWrapper(port)
2941
ASCAParams := services.AscaScanParams{
@@ -40,7 +52,6 @@ func RunScanASCACommand(jwtWrapper wrappers.JWTWrapper) func(cmd *cobra.Command,
4052
if err != nil {
4153
return err
4254
}
43-
4455
err = printer.Print(cmd.OutOrStdout(), scanResult, printer.FormatJSON)
4556
if err != nil {
4657
return err
@@ -49,3 +60,16 @@ func RunScanASCACommand(jwtWrapper wrappers.JWTWrapper) func(cmd *cobra.Command,
4960
return nil
5061
}
5162
}
63+
64+
func validateASCALocationFlags(cmd *cobra.Command) error {
65+
if cmd.Flags().Changed(commonParams.ASCALocationFlag) {
66+
flagVal, err := cmd.Flags().GetString(commonParams.ASCALocationFlag)
67+
if err != nil {
68+
return err
69+
}
70+
if strings.TrimSpace(flagVal) == "" {
71+
return errors.Errorf("%s flag is provided but empty", commonParams.ASCALocationFlag)
72+
}
73+
}
74+
return nil
75+
}

internal/commands/root.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,10 @@ func NewAstCLI(
118118
// are passed to Cobra.
119119
rootCmd.PersistentPreRunE = func(cmd *cobra.Command, args []string) error {
120120
CheckPreferredCredentials(cmd)
121-
err := extractOptionalFlags()
121+
err := extractOptionalFlags(cmd)
122+
if err != nil {
123+
return err
124+
}
122125
err = customLogConfiguration(rootCmd)
123126
if err != nil {
124127
return err
@@ -434,7 +437,13 @@ func CheckPreferredCredentials(cmd *cobra.Command) {
434437
}
435438
}
436439

437-
func extractOptionalFlags() error {
440+
func extractOptionalFlags(cmd *cobra.Command) error {
441+
if cmd.Flags().Changed(params.OptionalFlags) {
442+
flagVal := strings.TrimSpace(viper.GetString(params.OptionalFlags))
443+
if strings.TrimSpace(flagVal) == "" {
444+
return errors.Errorf("%s flag is provided but empty", params.OptionalFlags)
445+
}
446+
}
438447
optionalFlags := strings.TrimSpace(viper.GetString(params.OptionalFlagsKey))
439448
if optionalFlags == "" {
440449
return nil

internal/commands/scan.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ func scanASCASubCommand(jwtWrapper wrappers.JWTWrapper, featureFlagsWrapper wrap
482482
)
483483

484484
scanASCACmd.PersistentFlags().String(commonParams.IgnoredFilePathFlag, "", "Path to ignored secrets file")
485-
scanASCACmd.PersistentFlags().String(commonParams.ASCALocationFlag, "", "Path to ASCA installed location")
485+
scanASCACmd.PersistentFlags().String(commonParams.ASCALocationFlag, "", "Path to custom location where ASCA is installed")
486486
_ = viper.BindPFlag(commonParams.VorpalCustomPathKey, scanASCACmd.PersistentFlags().Lookup(commonParams.ASCALocationFlag))
487487

488488
return scanASCACmd

internal/params/flags.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ const (
6868
BaseURIFlag = "base-uri"
6969
ProxyFlag = "proxy"
7070
ProxyFlagUsage = "Proxy server to send communication through"
71-
OptionalFlagUsage = "Optional global flags for CLI "
71+
OptionalFlagUsage = "Flag for adding optional global configurations"
7272
IgnoreProxyFlag = "ignore-proxy"
7373
IgnoreProxyFlagUsage = "Ignore proxy configuration"
7474
ProxyTypeFlag = "proxy-auth-type"

internal/services/asca.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func CreateASCAScanRequest(ascaParams AscaScanParams, wrapperParams AscaWrappers
7676
if err != nil {
7777
return nil, err
7878
}
79-
} else if err = ValidateCustomASCAInstallation(vorpalLocation); err != nil {
79+
} else if err := ValidateCustomASCAInstallation(vorpalLocation); err != nil {
8080
return nil, err
8181
}
8282
err = ensureASCAServiceRunning(wrapperParams, ascaParams)

internal/services/asca_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@ package services
22

33
import (
44
"fmt"
5-
"github.com/checkmarx/ast-cli/internal/commands/asca/ascaconfig"
5+
66
"os"
77
"path/filepath"
88
"testing"
99

10+
"github.com/checkmarx/ast-cli/internal/commands/asca/ascaconfig"
1011
errorconstants "github.com/checkmarx/ast-cli/internal/constants/errors"
1112
"github.com/checkmarx/ast-cli/internal/params"
1213
"github.com/checkmarx/ast-cli/internal/wrappers"

internal/wrappers/utils/utils.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package utils
22

33
import (
4-
"github.com/checkmarx/ast-cli/internal/logger"
54
"net/url"
65
"path"
76
"strings"
87
"sync"
8+
9+
"github.com/checkmarx/ast-cli/internal/logger"
910
)
1011

1112
var (

internal/wrappers/utils/utils_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,11 +231,11 @@ func TestConcurrentSetOptionalParam(t *testing.T) {
231231
// spawn several goroutines setting allowed and disallowed keys
232232
for i := 0; i < 10; i++ {
233233
wg.Add(1)
234-
go func(i int) {
234+
go func() {
235235
defer wg.Done()
236236
SetOptionalParam(ascaLocationKey, "v")
237237
SetOptionalParam("not-allowed", "x")
238-
}(i)
238+
}()
239239
}
240240
wg.Wait()
241241

0 commit comments

Comments
 (0)