소스 검색

fix flag access (#1506)

Zachary Rice 1 년 전
부모
커밋
9463ffaa5e
6개의 변경된 파일35개의 추가작업 그리고 33개의 파일을 삭제
  1. 7 10
      cmd/detect.go
  2. 10 6
      cmd/directory.go
  3. 11 5
      cmd/git.go
  4. 5 6
      cmd/protect.go
  5. 1 5
      cmd/root.go
  6. 1 1
      cmd/stdin.go

+ 7 - 10
cmd/detect.go

@@ -46,11 +46,13 @@ var detectCmd = &cobra.Command{
 }
 
 func runDetect(cmd *cobra.Command, args []string) {
-	initConfig()
-	var (
-		findings []report.Finding
-		err      error
-	)
+	source, err := cmd.Flags().GetString("source")
+	if err != nil {
+		log.Fatal().Err(err).Msg("could not get source")
+	}
+	initConfig(source)
+
+	var findings []report.Finding
 
 	// setup config (aka, the thing that defines rules)
 	cfg := Config(cmd)
@@ -58,11 +60,6 @@ func runDetect(cmd *cobra.Command, args []string) {
 	// start timer
 	start := time.Now()
 
-	// grab source
-	source, err := cmd.Flags().GetString("source")
-	if err != nil {
-		log.Fatal().Err(err).Msg("could not get source")
-	}
 	detector := Detector(cmd, cfg, source)
 
 	// set exit code

+ 10 - 6
cmd/directory.go

@@ -23,7 +23,15 @@ var directoryCmd = &cobra.Command{
 }
 
 func runDirectory(cmd *cobra.Command, args []string) {
-	initConfig()
+	// grab source
+	source := "."
+	if len(args) == 1 {
+		source = args[0]
+		if source == "" {
+			source = "."
+		}
+	}
+	initConfig(source)
 	var (
 		findings []report.Finding
 		err      error
@@ -35,11 +43,7 @@ func runDirectory(cmd *cobra.Command, args []string) {
 	// start timer
 	start := time.Now()
 
-	// grab source
-	source, err := cmd.Flags().GetString("source")
-	if err != nil {
-		log.Fatal().Err(err).Msg("could not get source")
-	}
+
 	detector := Detector(cmd, cfg, source)
 
 	// set exit code

+ 11 - 5
cmd/git.go

@@ -25,12 +25,22 @@ var gitCmd = &cobra.Command{
 }
 
 func runGit(cmd *cobra.Command, args []string) {
-	initConfig()
 	var (
 		findings []report.Finding
 		err      error
 	)
 
+	// grab source
+    source := "."
+    if len(args) == 1 {
+	    source = args[0]
+	if source == "" {
+		source = "."
+	}
+    }
+
+	initConfig(source)
+
 	// setup config (aka, the thing that defines rules)
 	cfg := Config(cmd)
 
@@ -38,10 +48,6 @@ func runGit(cmd *cobra.Command, args []string) {
 	start := time.Now()
 
 	// grab source
-	source, err := cmd.Flags().GetString("source")
-	if err != nil {
-		log.Fatal().Err(err).Msg("could not get source")
-	}
 	detector := Detector(cmd, cfg, source)
 
 	// set exit code

+ 5 - 6
cmd/protect.go

@@ -25,18 +25,17 @@ var protectCmd = &cobra.Command{
 }
 
 func runProtect(cmd *cobra.Command, args []string) {
-	initConfig()
-	var err error
+	source, err := cmd.Flags().GetString("source")
+	if err != nil {
+		log.Fatal().Err(err).Msg("could not get source")
+	}
+	initConfig(source)
 
 	// setup config (aka, the thing that defines rules)
 	cfg := Config(cmd)
 
 	exitCode, _ := cmd.Flags().GetInt("exit-code")
 	staged, _ := cmd.Flags().GetBool("staged")
-	source, err := cmd.Flags().GetString("source")
-	if err != nil {
-		log.Fatal().Err(err).Msg("")
-	}
 	start := time.Now()
 	detector := Detector(cmd, cfg, source)
 

+ 1 - 5
cmd/root.go

@@ -86,7 +86,7 @@ func initLog() {
 	}
 }
 
-func initConfig() {
+func initConfig(source string) {
 	hideBanner, err := rootCmd.Flags().GetBool("no-banner")
 	if err != nil {
 		log.Fatal().Msg(err.Error())
@@ -106,10 +106,6 @@ func initConfig() {
 		viper.SetConfigFile(envPath)
 		log.Debug().Msgf("using gitleaks config from GITLEAKS_CONFIG env var: %s", envPath)
 	} else {
-		source, err := rootCmd.Flags().GetString("source")
-		if err != nil {
-			log.Fatal().Msg(err.Error())
-		}
 		fileInfo, err := os.Stat(source)
 		if err != nil {
 			log.Fatal().Msg(err.Error())

+ 1 - 1
cmd/stdin.go

@@ -21,7 +21,7 @@ var stdInCmd = &cobra.Command{
 }
 
 func runStdIn(cmd *cobra.Command, args []string) {
-	initConfig()
+	initConfig(".")
 	var (
 		findings []report.Finding
 		err      error