Просмотр исходного кода

fix: handle pre-commit and staged (#1533)

Richard Gomez 1 год назад
Родитель
Сommit
4e8d7d3790
1 измененных файлов с 23 добавлено и 4 удалено
  1. 23 4
      cmd/git.go

+ 23 - 4
cmd/git.go

@@ -57,17 +57,36 @@ func runGit(cmd *cobra.Command, args []string) {
 	}
 	}
 
 
 	var (
 	var (
-		gitCmd  *sources.GitCmd
-		logOpts string
+		gitCmd    *sources.GitCmd
+		logOpts   string
+		preCommit bool
+		staged    bool
 	)
 	)
 	logOpts, err = cmd.Flags().GetString("log-opts")
 	logOpts, err = cmd.Flags().GetString("log-opts")
 	if err != nil {
 	if err != nil {
 		log.Fatal().Err(err).Msg("could not call GetString() for log-opts")
 		log.Fatal().Err(err).Msg("could not call GetString() for log-opts")
 	}
 	}
-	gitCmd, err = sources.NewGitLogCmd(source, logOpts)
+	staged, err = cmd.Flags().GetBool("staged")
 	if err != nil {
 	if err != nil {
-		log.Fatal().Err(err).Msg("could not create Git cmd")
+		log.Fatal().Err(err).Msg("could not call GetBool() for staged")
 	}
 	}
+	preCommit, err = cmd.Flags().GetBool("pre-commit")
+	if err != nil {
+		log.Fatal().Err(err).Msg("could not call GetBool() for pre-commit")
+	}
+
+	if preCommit || staged {
+		gitCmd, err = sources.NewGitDiffCmd(source, staged)
+		if err != nil {
+			log.Fatal().Err(err).Msg("could not create Git diff cmd")
+		}
+	} else {
+		gitCmd, err = sources.NewGitLogCmd(source, logOpts)
+		if err != nil {
+			log.Fatal().Err(err).Msg("could not create Git log cmd")
+		}
+	}
+
 	findings, err = detector.DetectGit(gitCmd)
 	findings, err = detector.DetectGit(gitCmd)
 	if err != nil {
 	if err != nil {
 		// don't exit on error, just log it
 		// don't exit on error, just log it