summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-12 14:52:05 -0500
committerJeff Carr <[email protected]>2025-09-12 14:52:05 -0500
commitb5df8f2dad9ea63bffb4f2528937727c8f6dde12 (patch)
treea07268f384040fc5a2bfb4e4d527e78e62996fe3
parent7c520aae88c78c9b12610e5cbd7a968844b2ca6a (diff)
add delete tagv0.25.4
-rw-r--r--doTag.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/doTag.go b/doTag.go
index d2d5ca6..7491ce4 100644
--- a/doTag.go
+++ b/doTag.go
@@ -6,18 +6,57 @@ package main
// checks that repos are in a "normal" state
import (
+ "os"
"time"
+ "go.wit.com/lib/fhelp"
"go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
)
+func FindRepoByFullPath(wd string) *gitpb.Repo {
+ for repo := range me.forge.Repos.IterAll() {
+ if repo.FullPath == wd {
+ return repo
+ }
+ }
+ return nil
+}
+
func doTag() error {
if argv.Tag.List != nil {
log.Info("list tags here")
return nil
}
+ if argv.Tag.Delete != "" {
+ wd, _ := os.Getwd()
+
+ repo := FindRepoByFullPath(wd)
+ if repo == nil {
+ log.Info("Could not find repo:", wd)
+ return nil
+ }
+
+ // check if the git tag already exists somehow
+ testtag := argv.Tag.Delete
+ if !repo.LocalTagExists(testtag) {
+ log.Info("Tag", testtag, "does not exist")
+ return log.Errorf("%s TAG DOES NOT EXIST %s", repo.FullPath, testtag)
+ }
+ if !argv.Force {
+ if !fhelp.QuestionUser("delete this tag?") {
+ return nil
+ }
+ }
+ log.Info("Delete tag here", testtag)
+
+ // delete local and remote tag
+ repo.RunVerbose([]string{"git", "tag", "--delete", testtag})
+ repo.RunVerbose([]string{"git", "push", "--delete", "origin", testtag})
+ return nil
+ }
+
ns := "go.wit.com/apps/forge"
repo := me.forge.Repos.FindByNamespace(ns)
if repo == nil {