From aa23f3d204f1cecde8dcefea5acdbcc6263513c6 Mon Sep 17 00:00:00 2001 From: ktranSC <167803002+ktranSC@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:18:40 -0700 Subject: [PATCH] Add feature flags to CLI args (#3359) * Update main.go * Update main.go --- main.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/main.go b/main.go index a3f9c793b376..f5b629fb7ae6 100644 --- a/main.go +++ b/main.go @@ -30,6 +30,7 @@ import ( "github.com/trufflesecurity/trufflehog/v3/pkg/handlers" "github.com/trufflesecurity/trufflehog/v3/pkg/log" "github.com/trufflesecurity/trufflehog/v3/pkg/output" + "github.com/trufflesecurity/trufflehog/v3/pkg/feature" "github.com/trufflesecurity/trufflehog/v3/pkg/sources" "github.com/trufflesecurity/trufflehog/v3/pkg/tui" "github.com/trufflesecurity/trufflehog/v3/pkg/updater" @@ -70,6 +71,12 @@ var ( excludeDetectors = cli.Flag("exclude-detectors", "Comma separated list of detector types to exclude. Protobuf name or IDs may be used, as well as ranges. IDs defined here take precedence over the include list.").String() jobReportFile = cli.Flag("output-report", "Write a scan report to the provided path.").Hidden().OpenFile(os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666) + // Add feature flags + forceSkipBinaries = cli.Flag("force-skip-binaries", "Force skipping binaries.").Bool() + forceSkipArchives = cli.Flag("force-skip-archives", "Force skipping archives.").Bool() + skipAdditionalRefs = cli.Flag("skip-additional-refs", "Skip additional references.").Bool() + userAgentSuffix = cli.Flag("user-agent-suffix", "Suffix to add to User-Agent.").String() + gitScan = cli.Command("git", "Find credentials in git repositories.") gitScanURI = gitScan.Arg("uri", "Git repository URL. https://, file://, or ssh:// schema expected.").Required().String() gitScanIncludePaths = gitScan.Flag("include-paths", "Path to file with newline separated regexes for files to include in scan.").Short('i').String() @@ -368,6 +375,23 @@ func run(state overseer.State) { }() } + // Set feature configurations from CLI flags + if *forceSkipBinaries { + feature.ForceSkipBinaries.Store(true) + } + + if *forceSkipArchives { + feature.ForceSkipArchives.Store(true) + } + + if *skipAdditionalRefs { + feature.SkipAdditionalRefs.Store(true) + } + + if *userAgentSuffix != "" { + feature.UserAgentSuffix.Store(*userAgentSuffix) + } + conf := &config.Config{} if *configFilename != "" { var err error