From 7e86590b12270762ce1e4416988881c75ee73073 Mon Sep 17 00:00:00 2001 From: lif Date: Tue, 21 Apr 2026 10:11:44 +0100 Subject: [PATCH] tidy and readme --- README.md | 2 ++ main.go | 93 ++++++++++++++++++++++++------------------------------- 2 files changed, 43 insertions(+), 52 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3aab903 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# gitcheck +Basic cli utils to check if any projects have uncommited changes diff --git a/main.go b/main.go index 7638a02..59b3aab 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "flag" "fmt" + "log" "os" "path/filepath" "strings" @@ -11,11 +12,48 @@ import ( ) const ( - green = "\033[32m" - red = "\033[31m" - reset = "\033[0m" + defaultDir = "." + green = "\033[32m" + red = "\033[31m" + reset = "\033[0m" ) +func main() { + flag.Parse() + args := flag.Args() + + dir := defaultDir + if len(args) > 0 { + dir = args[0] + } + + path, err := expandTilde(dir) + if err != nil { + log.Fatal(err) + } + + entries, err := os.ReadDir(path) + if err != nil { + log.Fatal(err) + } + + for _, d := range entries { + cpath := filepath.Join(path, d.Name()) + + status, err := getStatus(cpath) + if err != nil { + fmt.Println(cpath) + continue + } + + if !status.IsClean() { + fmt.Printf("%s%s (%v)%s\n", green, cpath, len(status), reset) + } else { + fmt.Println(cpath) + } + } +} + func getStatus(repoPath string) (git.Status, error) { repo, err := git.PlainOpen(repoPath) if err != nil { @@ -42,52 +80,3 @@ func expandTilde(path string) (string, error) { } return filepath.Join(home, path[1:]), nil } - -func main() { - // dirPath := flag.String("dir", ".", "path to directory") - flag.Parse() - - args := flag.Args() - dir := "." - if len(args) > 0 { - // log.Fatal("usage: gitcheck ") - dir = args[0] - } - path, err := expandTilde(dir) - if err != nil { - fmt.Println(err) - } - entries, err := os.ReadDir(path) - if err != nil { - fmt.Println(err) - } - for _, d := range entries { - cpath := filepath.Join(path, d.Name()) - // fmt.Println(cpath) - // p, err := os.Stat(cpath) - if err != nil { - // fmt.Println(err) - fmt.Println(cpath) - continue - } - // if !p.IsDir() { - // continue - // } - status, err := getStatus(cpath) - if err != nil { - // fmt.Println(err) - fmt.Println(cpath) - continue - } - // fmt.Println("----------") - // pp.Println(res) - // fmt.Printf("%v: %v \n", cpath, res) - if !status.IsClean() { - fmt.Printf("%s%s (%v)%s\n", green, cpath, len(status), reset) - // fmt.Println(status.String()) - } else { - fmt.Println(cpath) - // fmt.Printf("%s%s%s\n", red, cpath, reset) - } - } -}