summaryrefslogtreecommitdiff
path: root/scan.go
diff options
context:
space:
mode:
Diffstat (limited to 'scan.go')
-rw-r--r--scan.go26
1 files changed, 26 insertions, 0 deletions
diff --git a/scan.go b/scan.go
index 62033d5..7200898 100644
--- a/scan.go
+++ b/scan.go
@@ -2,10 +2,13 @@ package repolist
import (
"fmt"
+ "os"
+ "path/filepath"
"strconv"
"strings"
"go.wit.com/log"
+ "go.wit.com/lib/gui/repostatus"
)
func (r *RepoList) RegisterHideFunction(f func(*RepoRow)) {
@@ -70,3 +73,26 @@ func (r *RepoRow) NewScan() int {
return changed
}
+
+func ScanGitDirectories(srcDir string) []string {
+ var all []string
+ err := filepath.Walk(srcDir, func(path string, info os.FileInfo, err error) error {
+ if err != nil {
+ log.Log(REPOWARN, "Error accessing path:", path, err)
+ return nil
+ }
+
+ // Check if the path is a directory and has a .git subdirectory
+ if info.IsDir() && repostatus.IsGitDir(path) {
+ all = append(all, path)
+ }
+
+ return nil
+ })
+
+ if err != nil {
+ log.Log(REPOWARN, "Error walking the path:", srcDir, err)
+ }
+
+ return all
+}