mirror of https://github.com/rwxrob/z
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
914 B
Go
49 lines
914 B
Go
package git
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
Z "github.com/rwxrob/bonzai/z"
|
|
"github.com/rwxrob/help"
|
|
"github.com/rwxrob/term"
|
|
"github.com/rwxrob/to"
|
|
)
|
|
|
|
func tags() ([]string, error) {
|
|
lines := to.Lines(Z.Out("git", "tag"))
|
|
return lines, nil
|
|
}
|
|
|
|
func deltag(tag string) error {
|
|
if err := Z.Exec(`git`, `push`, `--delete`, `origin`, tag); err != nil {
|
|
return err
|
|
}
|
|
return Z.Exec(`git`, `tag`, `--delete`, tag)
|
|
}
|
|
|
|
var Cmd = &Z.Cmd{
|
|
Name: `git`,
|
|
Summary: `git extensions`,
|
|
Commands: []*Z.Cmd{help.Cmd, delTagsCmd},
|
|
}
|
|
|
|
var delTagsCmd = &Z.Cmd{
|
|
Name: `deltags`,
|
|
Summary: `delete all local and remote tags`,
|
|
Commands: []*Z.Cmd{help.Cmd},
|
|
Call: func(_ *Z.Cmd, args ...string) error {
|
|
lines, err := tags()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
fmt.Println(lines)
|
|
if term.Prompt("Really delete them all? (y/N) ") != "y" {
|
|
return nil
|
|
}
|
|
for _, tag := range lines {
|
|
deltag(tag)
|
|
}
|
|
return err
|
|
},
|
|
}
|