diff --git a/internal/scan/scan.go b/internal/scan/scan.go index d4b8263f..d386bed4 100644 --- a/internal/scan/scan.go +++ b/internal/scan/scan.go @@ -53,12 +53,12 @@ func RunOperatorScan(ctx context.Context, cfg *types.Config) []*types.ScanResult return []*types.ScanResults{validateTag(ctx, tag, cfg)} } -func RunPayloadScan(ctx context.Context, cfg *types.Config) []*types.ScanResults { +func RunPayloadScan(ctx context.Context, cfg *types.Config) ([]*types.ScanResults, error) { var runs []*types.ScanResults payload, err := GetPayload(cfg) if err != nil { - klog.Fatalf("could not get pods from payload: %v", err) + return nil, fmt.Errorf("could not get pods from payload: %w", err) } parallelism := cfg.Parallelism @@ -112,7 +112,7 @@ func RunPayloadScan(ctx context.Context, cfg *types.Config) []*types.ScanResults close(rx) wgRx.Wait() - return runs + return runs, nil } func scan(ctx context.Context, cfg *types.Config, tx <-chan *Request, rx chan<- *Result) { diff --git a/main.go b/main.go index ccf3df77..d06bc536 100644 --- a/main.go +++ b/main.go @@ -174,8 +174,9 @@ func main() { } config.PrintExceptions, _ = cmd.Flags().GetBool("print-exceptions") config.UseRPMScan, _ = cmd.Flags().GetBool("rpm-scan") - results = scan.RunPayloadScan(ctx, &config) - return nil + var err error + results, err = scan.RunPayloadScan(ctx, &config) + return err }, } scanPayload.Flags().StringP("url", "u", "", "payload url") @@ -291,7 +292,8 @@ func main() { rootCmd.PersistentFlags().AddGoFlagSet(klogFlags) if err := rootCmd.Execute(); err != nil { - klog.Fatalf("Error: %v\n", err) + klog.ErrorS(err, "command failed") + os.Exit(1) } }