Skip to content

Commit 81d0162

Browse files
committed
Fix error message when started from outside a git worktree.
Fixes #6
1 parent 2f94a87 commit 81d0162

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

git-subtrac.go

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,6 @@ func main() {
4242
verbose := getopt.BoolLong("verbose", 'v', "verbose mode")
4343
getopt.Parse()
4444

45-
r, err := git.PlainOpen(*repodir)
46-
if err != nil {
47-
fatalf("git: %v: %v\n", repodir, err)
48-
}
49-
5045
args := getopt.Args()
5146
if len(args) < 1 {
5247
usagef("no command specified.")
@@ -59,16 +54,25 @@ func main() {
5954
debugf = func(fmt string, args ...interface{}) {}
6055
}
6156

62-
c, err := NewCache(*repodir, r, *excludes, *autoexclude, debugf, infof)
63-
if err != nil {
64-
fatalf("NewCache: %v\n", err)
57+
setupOrFatal := func() *Cache {
58+
r, err := git.PlainOpen(*repodir)
59+
if err != nil {
60+
fatalf("git: %v: %v\n", *repodir, err)
61+
}
62+
63+
c, err := NewCache(*repodir, r, *excludes, *autoexclude, debugf, infof)
64+
if err != nil {
65+
fatalf("NewCache: %v\n", err)
66+
}
67+
return c
6568
}
6669

6770
switch args[0] {
6871
case "update":
6972
if len(args) != 1 {
7073
usagef("command 'update' takes no arguments")
7174
}
75+
c := setupOrFatal()
7276
err := c.UpdateBranchRefs()
7377
if err != nil {
7478
fatalf("%v\n", err)
@@ -77,6 +81,7 @@ func main() {
7781
if len(args) != 2 {
7882
usagef("command 'cid' takes exactly 1 argument")
7983
}
84+
c := setupOrFatal()
8085
refname := args[1]
8186
trac, err := c.TracByRef(refname)
8287
if err != nil {
@@ -89,6 +94,7 @@ func main() {
8994
if len(args) < 2 {
9095
usagef("command 'dump' takes at least 1 argument")
9196
}
97+
c := setupOrFatal()
9298
for _, refname := range args[1:] {
9399
_, err := c.TracByRef(refname)
94100
if err != nil {

0 commit comments

Comments
 (0)