Add dryrun functionality
This commit is contained in:
12
main.go
12
main.go
@@ -20,11 +20,11 @@ var Version = "2.0.0"
|
|||||||
func main() {
|
func main() {
|
||||||
name := flag.StringP("name", "n", "", "Name of the repository")
|
name := flag.StringP("name", "n", "", "Name of the repository")
|
||||||
private := flag.BoolP("private", "p", false, "Make the repository private")
|
private := flag.BoolP("private", "p", false, "Make the repository private")
|
||||||
noinit := flag.BoolP("noinit", "ni", false, "Do not add remote to the new repo")
|
noinit := flag.Bool("noinit", false, "Do not add remote to the new repo")
|
||||||
forceInit := flag.BoolP("force", "f", false, "Force assignment of the remote (deletes existing origin)")
|
forceInit := flag.BoolP("force", "f", false, "Force assignment of the remote (deletes existing origin)")
|
||||||
remote := flag.StringP("remote", "r", "origin", "Name of the remote to create for the new repository")
|
remote := flag.StringP("remote", "r", "origin", "Name of the remote to create for the new repository")
|
||||||
version := flag.BoolP("version", "v", false, "Show version")
|
version := flag.BoolP("version", "v", false, "Show version")
|
||||||
dryrun := flag.Bool("dryrun", false, "Dry run")
|
dryrun := flag.Bool("dry-run", false, "Dry run")
|
||||||
help := flag.BoolP("help", "h", false, "Show help")
|
help := flag.BoolP("help", "h", false, "Show help")
|
||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
@@ -100,6 +100,7 @@ func main() {
|
|||||||
clipboard.Write(clipboard.FmtText, []byte(repo.CloneURL))
|
clipboard.Write(clipboard.FmtText, []byte(repo.CloneURL))
|
||||||
} else {
|
} else {
|
||||||
logger.Info("Repository does not exist, creating...")
|
logger.Info("Repository does not exist, creating...")
|
||||||
|
if !*dryrun {
|
||||||
repo, _, err = client.CreateRepo(gitea.CreateRepoOption{
|
repo, _, err = client.CreateRepo(gitea.CreateRepoOption{
|
||||||
Name: *name,
|
Name: *name,
|
||||||
Private: *private,
|
Private: *private,
|
||||||
@@ -109,6 +110,7 @@ func main() {
|
|||||||
logger.Error("Error creating repository: %v", err)
|
logger.Error("Error creating repository: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}
|
||||||
logger.Info("Repository created at: %s", repo.CloneURL)
|
logger.Info("Repository created at: %s", repo.CloneURL)
|
||||||
clipboard.Write(clipboard.FmtText, []byte(repo.CloneURL))
|
clipboard.Write(clipboard.FmtText, []byte(repo.CloneURL))
|
||||||
}
|
}
|
||||||
@@ -132,23 +134,27 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
if !*dryrun {
|
||||||
localRepo, err = git.PlainInit(cwd, false)
|
localRepo, err = git.PlainInit(cwd, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("Error initializing git repository: %v", err)
|
logger.Error("Error initializing git repository: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
logger.Info("Checking if remote %s exists in local repository...", *remote)
|
logger.Info("Checking if remote %s exists in local repository...", *remote)
|
||||||
_, err = localRepo.Remote(*remote)
|
_, err = localRepo.Remote(*remote)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
logger.Info("Remote %s exists in local repository", *remote)
|
logger.Info("Remote %s exists in local repository", *remote)
|
||||||
if *forceInit {
|
if *forceInit {
|
||||||
logger.Info("Deleting remote %s from local repository...", *remote)
|
logger.Info("Deleting remote %s from local repository...", *remote)
|
||||||
|
if !*dryrun {
|
||||||
err = localRepo.DeleteRemote(*remote)
|
err = localRepo.DeleteRemote(*remote)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("Error deleting remote %s from local repository: %v", *remote, err)
|
logger.Error("Error deleting remote %s from local repository: %v", *remote, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}
|
||||||
logger.Info("Remote %s deleted from local repository", *remote)
|
logger.Info("Remote %s deleted from local repository", *remote)
|
||||||
} else {
|
} else {
|
||||||
logger.Error("Remote %s already exists in local repository", *remote)
|
logger.Error("Remote %s already exists in local repository", *remote)
|
||||||
@@ -157,6 +163,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
logger.Info("Adding remote %s to local repository...", *remote)
|
logger.Info("Adding remote %s to local repository...", *remote)
|
||||||
|
if !*dryrun {
|
||||||
_, err = localRepo.CreateRemote(&config.RemoteConfig{
|
_, err = localRepo.CreateRemote(&config.RemoteConfig{
|
||||||
Name: *remote,
|
Name: *remote,
|
||||||
URLs: []string{repo.CloneURL},
|
URLs: []string{repo.CloneURL},
|
||||||
@@ -165,6 +172,7 @@ func main() {
|
|||||||
logger.Error("Error adding remote %s to local repository: %v", *remote, err)
|
logger.Error("Error adding remote %s to local repository: %v", *remote, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
}
|
||||||
logger.Info("Remote added to local repository")
|
logger.Info("Remote added to local repository")
|
||||||
}
|
}
|
||||||
logger.Info("Done")
|
logger.Info("Done")
|
||||||
|
|||||||
Reference in New Issue
Block a user