| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package cmd
- import (
- "context"
- "os"
- "time"
- "github.com/spf13/cobra"
- "github.com/zricethezav/gitleaks/v8/logging"
- "github.com/zricethezav/gitleaks/v8/sources"
- )
- func init() {
- rootCmd.AddCommand(stdInCmd)
- }
- var stdInCmd = &cobra.Command{
- Use: "stdin",
- Short: "detect secrets from stdin",
- Run: runStdIn,
- }
- func runStdIn(cmd *cobra.Command, _ []string) {
- // start timer
- start := time.Now()
- // setup config (aka, the thing that defines rules)
- initConfig(".")
- initDiagnostics()
- cfg := Config(cmd)
- // create detector
- detector := Detector(cmd, cfg, "")
- // parse flag(s)
- exitCode := mustGetIntFlag(cmd, "exit-code")
- findings, err := detector.DetectSource(
- context.Background(),
- &sources.File{
- Content: os.Stdin,
- MaxArchiveDepth: detector.MaxArchiveDepth,
- },
- )
- if err != nil {
- // log fatal to exit, no need to continue since a report will not be
- // generated when scanning from a pipe...for now
- logging.Fatal().Err(err).Msg("failed scan input from stdin")
- }
- findingSummaryAndExit(detector, findings, exitCode, start, err)
- }
|