mirror of
https://github.com/aquasecurity/trivy.git
synced 2025-12-21 23:00:42 -08:00
65 lines
1.2 KiB
Go
65 lines
1.2 KiB
Go
package flag
|
|
|
|
import (
|
|
"github.com/aquasecurity/trivy/pkg/module"
|
|
)
|
|
|
|
// e.g. config yaml
|
|
// module:
|
|
// dir: "/path/to/my_modules"
|
|
// enable-modules:
|
|
// - spring4shell
|
|
|
|
var (
|
|
ModuleDirFlag = Flag{
|
|
Name: "module-dir",
|
|
ConfigName: "module.dir",
|
|
Value: module.DefaultDir,
|
|
Usage: "specify directory to the wasm modules that will be loaded",
|
|
Persistent: true,
|
|
}
|
|
EnableModulesFlag = Flag{
|
|
Name: "enable-modules",
|
|
ConfigName: "module.enable-modules",
|
|
Value: []string{},
|
|
Usage: "[EXPERIMENTAL] module names to enable",
|
|
Persistent: true,
|
|
}
|
|
)
|
|
|
|
// ModuleFlagGroup defines flags for modules
|
|
type ModuleFlagGroup struct {
|
|
Dir *Flag
|
|
EnabledModules *Flag
|
|
}
|
|
|
|
type ModuleOptions struct {
|
|
ModuleDir string
|
|
EnabledModules []string
|
|
}
|
|
|
|
func NewModuleFlagGroup() *ModuleFlagGroup {
|
|
return &ModuleFlagGroup{
|
|
Dir: &ModuleDirFlag,
|
|
EnabledModules: &EnableModulesFlag,
|
|
}
|
|
}
|
|
|
|
func (f *ModuleFlagGroup) Name() string {
|
|
return "Module"
|
|
}
|
|
|
|
func (f *ModuleFlagGroup) Flags() []*Flag {
|
|
return []*Flag{
|
|
f.Dir,
|
|
f.EnabledModules,
|
|
}
|
|
}
|
|
|
|
func (f *ModuleFlagGroup) ToOptions() ModuleOptions {
|
|
return ModuleOptions{
|
|
ModuleDir: getString(f.Dir),
|
|
EnabledModules: getStringSlice(f.EnabledModules),
|
|
}
|
|
}
|