Skip to content

Commit 4806c48

Browse files
authored
Merge pull request #14 from matsuyoshi30/improve-errormessage
Add function for detection under a git project directory
2 parents 75c6221 + a3e6847 commit 4806c48

File tree

2 files changed

+32
-1
lines changed

2 files changed

+32
-1
lines changed

git.go

+27-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
package main
22

3-
import "os/exec"
3+
import (
4+
"errors"
5+
"fmt"
6+
"os"
7+
"os/exec"
8+
"path/filepath"
9+
)
410

511
func SetGitConfig(user User, scope Scope, users []User, selectedUserIndex int) error {
612
cmdName := exec.Command("git", "config", scope.String(), "user.name", user.Name)
@@ -26,3 +32,23 @@ func SetGitConfig(user User, scope Scope, users []User, selectedUserIndex int) e
2632

2733
return nil
2834
}
35+
36+
func IsUnderGitDir() error {
37+
cwd, err := os.Getwd()
38+
if err != nil {
39+
return err
40+
}
41+
42+
if _, err := os.Stat(filepath.Join(cwd, ".git")); errors.Is(err, os.ErrNotExist) {
43+
return fmt.Errorf("you need to be in a git project directory to use gitsu")
44+
} else if err != nil {
45+
return err
46+
}
47+
48+
cmdRevParse := exec.Command("git", "rev-parse", "--is-inside-work-tree")
49+
if err := cmdRevParse.Run(); err != nil {
50+
return err
51+
}
52+
53+
return nil
54+
}

main.go

+5
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,11 @@ func run() int {
7676

7777
switch actionType {
7878
case sel:
79+
if err := IsUnderGitDir(); err != nil {
80+
fmt.Fprintf(os.Stderr, "Failed to detect git project: %v\n", err)
81+
return 1
82+
}
83+
7984
if err := selectUser(); err != nil {
8085
fmt.Fprintf(os.Stderr, "Failed to select user: %v\n", err)
8186
return 1

0 commit comments

Comments
 (0)