@@ -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
1420func 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+ }
0 commit comments