MCPcopy
hub / github.com/hashicorp/packer / ParseArgs

Method ParseArgs

command/sbom_generate.go:27–114  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

25}
26
27func (cmd *SBOMGenerateCommand) ParseArgs(args []string) (*sbom.Config, int) {
28 cfg := &sbom.Config{
29 ScanPath: "/",
30 Format: sbom.FormatCycloneDX, // default format
31 Parallelism: 4, // default parallelism
32 Scope: sbom.ScopeSquashed, // default scope
33 }
34
35 //Parse Syft Style args
36 // Parse Syft-style arguments
37 for i := 0; i < len(args); i++ {
38 arg := args[i]
39
40 switch arg {
41 case "-o", "--output":
42 // Next arg is format
43 if i+1 >= len(args) {
44 cmd.Ui.Error("Missing value for -o flag")
45 return cfg, 1
46 }
47 i++
48 formatStr := args[i]
49
50 // Parse format string
51 format, err := sbom.ParseFormatFromArgs(formatStr)
52 if err != nil {
53 cmd.Ui.Error(err.Error())
54 return cfg, 1
55 }
56 cfg.Format = format
57
58 case "--exclude":
59 if i+1 >= len(args) {
60 cmd.Ui.Error("Missing value for --exclude flag")
61 return cfg, 1
62 }
63 i++
64 cfg.Exclude = append(cfg.Exclude, args[i])
65
66 case "--scope":
67 if i+1 >= len(args) {
68 cmd.Ui.Error("Missing value for --scope flag")
69 return cfg, 1
70 }
71 i++
72 scope, err := sbom.ParseScopeFromArgs(args[i])
73 if err != nil {
74 cmd.Ui.Error(err.Error())
75 return cfg, 1
76 }
77 cfg.Scope = scope
78
79 default:
80 if strings.HasPrefix(arg, "--exclude=") {
81 value := strings.TrimPrefix(arg, "--exclude=")
82 if value == "" {
83 cmd.Ui.Error("Missing value for --exclude flag")
84 return cfg, 1

Calls 3

ParseFormatFromArgsFunction · 0.92
ParseScopeFromArgsFunction · 0.92
ErrorMethod · 0.65