diff --git a/main.go b/main.go index 6557f91..b9d517c 100644 --- a/main.go +++ b/main.go @@ -66,13 +66,11 @@ func main() { } var name string - var private, init, forceInit bool + var private, forceInit bool flag.StringVar(&name, "name", "", "Name of the repository") flag.StringVar(&name, "n", "", "Name of the repository (shorthand)") flag.BoolVar(&private, "private", false, "Make the repository private") flag.BoolVar(&private, "p", false, "Make the repository private (shorthand)") - flag.BoolVar(&init, "init", false, "Also add remote to the new repo") - flag.BoolVar(&init, "i", false, "Also add remote to the new repo (shorthand)") flag.BoolVar(&forceInit, "f", false, "Force assignment of the remote (deletes existing origin)") flag.Parse() @@ -110,51 +108,49 @@ func main() { clipboard.Write(clipboard.FmtText, []byte(repo.CloneURL)) } - if init { - cwd, err := os.Getwd() + cwd, err := os.Getwd() + if err != nil { + Error.Fatalf("Error getting current working directory: %v", err) + os.Exit(1) + } + cwd = path.Clean(cwd) + + var localRepo *git.Repository + _, err = os.Stat(path.Join(cwd, ".git")) + if err == nil { + localRepo, err = git.PlainOpen(cwd) if err != nil { - Error.Fatalf("Error getting current working directory: %v", err) + Error.Fatalf("Error opening git repository: %v", err) os.Exit(1) } - cwd = path.Clean(cwd) - - var localRepo *git.Repository - _, err = os.Stat(path.Join(cwd, ".git")) - if err == nil { - localRepo, err = git.PlainOpen(cwd) + } else { + localRepo, err = git.PlainInit(cwd, false) + if err != nil { + Error.Fatalf("Error initializing git repository: %v", err) + os.Exit(1) + } + } + _, err = localRepo.Remote("origin") + if err == nil { + if forceInit { + err = localRepo.DeleteRemote("origin") if err != nil { - Error.Fatalf("Error opening git repository: %v", err) + Error.Fatalf("Error deleting remote from local repository: %v", err) os.Exit(1) } } else { - localRepo, err = git.PlainInit(cwd, false) - if err != nil { - Error.Fatalf("Error initializing git repository: %v", err) - os.Exit(1) - } - } - _, err = localRepo.Remote("origin") - if err == nil { - if forceInit { - err = localRepo.DeleteRemote("origin") - if err != nil { - Error.Fatalf("Error deleting remote from local repository: %v", err) - os.Exit(1) - } - } else { - Error.Fatalf("Remote origin already exists in local repository") - os.Exit(1) - } - } - - _, err = localRepo.CreateRemote(&config.RemoteConfig{ - Name: "origin", - URLs: []string{repo.CloneURL}, - }) - if err != nil { - Error.Fatalf("Error adding remote to local repository: %v", err) + Error.Fatalf("Remote origin already exists in local repository") os.Exit(1) } - log.Printf("Remote added to local repository") } + + _, err = localRepo.CreateRemote(&config.RemoteConfig{ + Name: "origin", + URLs: []string{repo.CloneURL}, + }) + if err != nil { + Error.Fatalf("Error adding remote to local repository: %v", err) + os.Exit(1) + } + log.Printf("Remote added to local repository") }