浏览代码

concurrency option functional

zricethezav 8 年之前
父节点
当前提交
825d434c66
共有 2 个文件被更改,包括 10 次插入5 次删除
  1. 10 4
      leaks.go
  2. 0 1
      main.go

+ 10 - 4
leaks.go

@@ -20,6 +20,7 @@ type LeakElem struct {
 	Commit string `json:"commit"`
 }
 
+// start clones and determines if there are any leaks
 func start(opts *Options) {
 	fmt.Printf("\nEvaluating \x1b[37;1m%s\x1b[0m...\n", opts.RepoURL)
 	c := make(chan os.Signal, 2)
@@ -40,7 +41,7 @@ func start(opts *Options) {
 		os.Exit(1)
 	}()
 
-	report := getLeaks(repoName)
+	report := getLeaks(repoName, opts.Concurrency)
 	if len(report) == 0 {
 		fmt.Printf("No Leaks detected for \x1b[35;2m%s\x1b[0m...\n\n", opts.RepoURL)
 	}
@@ -63,6 +64,7 @@ func getLocalRepoName(url string) string {
 	return name
 }
 
+// cleanup deletes the repo
 func cleanup(repoName string) {
 	if err := os.Chdir(appRoot); err != nil {
 		log.Fatalf("failed cleaning up repo. Does the repo exist? %v", err)
@@ -73,18 +75,22 @@ func cleanup(repoName string) {
 	}
 }
 
-func getLeaks(repoName string) []LeakElem {
+// getLeaks will attempt to find gitleaks
+func getLeaks(repoName string, concurrency int) []LeakElem {
 	var (
 		out               []byte
 		err               error
 		commitWG          sync.WaitGroup
 		gitLeakReceiverWG sync.WaitGroup
-		concurrent        = 100
-		semaphoreChan     = make(chan struct{}, concurrent)
 		gitLeaks          = make(chan LeakElem)
 		report            []LeakElem
 	)
 
+	if concurrency == 0 {
+		concurrency = 100
+	}
+	semaphoreChan := make(chan struct{}, concurrency)
+
 	go func(commitWG *sync.WaitGroup, gitLeakReceiverWG *sync.WaitGroup) {
 		for gitLeak := range gitLeaks {
 			fmt.Println(gitLeak)

+ 0 - 1
main.go

@@ -42,7 +42,6 @@ func init() {
 func main() {
 	args := os.Args[1:]
 	opts := parseOptions(args)
-	fmt.Println(opts)
 	if opts.RepoURL != "" {
 		start(opts)
 	} else if opts.UserURL != "" || opts.OrgURL != "" {