Add dryrun functionality

This commit is contained in:
2025-10-15 10:20:15 +02:00
parent b286d5578e
commit 219a75a1d3

58
main.go
View File

@@ -20,11 +20,11 @@ var Version = "2.0.0"
func main() {
name := flag.StringP("name", "n", "", "Name of the repository")
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)")
remote := flag.StringP("remote", "r", "origin", "Name of the remote to create for the new repository")
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")
flag.Parse()
@@ -100,14 +100,16 @@ func main() {
clipboard.Write(clipboard.FmtText, []byte(repo.CloneURL))
} else {
logger.Info("Repository does not exist, creating...")
repo, _, err = client.CreateRepo(gitea.CreateRepoOption{
Name: *name,
Private: *private,
DefaultBranch: "master",
})
if err != nil {
logger.Error("Error creating repository: %v", err)
return
if !*dryrun {
repo, _, err = client.CreateRepo(gitea.CreateRepoOption{
Name: *name,
Private: *private,
DefaultBranch: "master",
})
if err != nil {
logger.Error("Error creating repository: %v", err)
return
}
}
logger.Info("Repository created at: %s", repo.CloneURL)
clipboard.Write(clipboard.FmtText, []byte(repo.CloneURL))
@@ -132,10 +134,12 @@ func main() {
return
}
} else {
localRepo, err = git.PlainInit(cwd, false)
if err != nil {
logger.Error("Error initializing git repository: %v", err)
return
if !*dryrun {
localRepo, err = git.PlainInit(cwd, false)
if err != nil {
logger.Error("Error initializing git repository: %v", err)
return
}
}
}
logger.Info("Checking if remote %s exists in local repository...", *remote)
@@ -144,10 +148,12 @@ func main() {
logger.Info("Remote %s exists in local repository", *remote)
if *forceInit {
logger.Info("Deleting remote %s from local repository...", *remote)
err = localRepo.DeleteRemote(*remote)
if err != nil {
logger.Error("Error deleting remote %s from local repository: %v", *remote, err)
return
if !*dryrun {
err = localRepo.DeleteRemote(*remote)
if err != nil {
logger.Error("Error deleting remote %s from local repository: %v", *remote, err)
return
}
}
logger.Info("Remote %s deleted from local repository", *remote)
} else {
@@ -157,13 +163,15 @@ func main() {
}
logger.Info("Adding remote %s to local repository...", *remote)
_, err = localRepo.CreateRemote(&config.RemoteConfig{
Name: *remote,
URLs: []string{repo.CloneURL},
})
if err != nil {
logger.Error("Error adding remote %s to local repository: %v", *remote, err)
return
if !*dryrun {
_, err = localRepo.CreateRemote(&config.RemoteConfig{
Name: *remote,
URLs: []string{repo.CloneURL},
})
if err != nil {
logger.Error("Error adding remote %s to local repository: %v", *remote, err)
return
}
}
logger.Info("Remote added to local repository")
}