aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2022-10-16 00:08:26 +0900
committernsfisis <nsfisis@gmail.com>2022-10-16 00:08:26 +0900
commitdc283f029e04f3527d717fdc2e5cbf58f8088f78 (patch)
tree9b852b08d575dac285c86c14e96c43417b00c861
parent5bbaf2fbb6519a76429e6074e562c341bbf2066e (diff)
downloaddotfiles-dc283f029e04f3527d717fdc2e5cbf58f8088f78.tar.gz
dotfiles-dc283f029e04f3527d717fdc2e5cbf58f8088f78.tar.zst
dotfiles-dc283f029e04f3527d717fdc2e5cbf58f8088f78.zip
git:git-sw: prepend feature/ to integer branch name
-rw-r--r--src/gitalias/git-sw.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gitalias/git-sw.go b/src/gitalias/git-sw.go
index f4cab21..78f7397 100644
--- a/src/gitalias/git-sw.go
+++ b/src/gitalias/git-sw.go
@@ -5,6 +5,7 @@ import (
"os"
"os/exec"
"strings"
+ "unicode"
)
func main() {
@@ -12,10 +13,17 @@ func main() {
if requiresDetachFlag(os.Args) {
gitArgs = append(gitArgs, "--detach")
}
+ firstPositionalArg := true
for i, argv := range os.Args {
if i == 0 {
continue // argv[0] is a program name.
}
+ if firstPositionalArg && !strings.HasPrefix(argv, "-") {
+ if isInt(argv) {
+ argv = "feature/" + argv
+ }
+ firstPositionalArg = false
+ }
gitArgs = append(gitArgs, argv)
}
@@ -45,3 +53,12 @@ func requiresDetachFlag(argv []string) bool {
firstArg := argv[1]
return strings.HasPrefix(firstArg, "origin/") || strings.HasPrefix(firstArg, "upstream/")
}
+
+func isInt(s string) bool {
+ for _, c := range s {
+ if !unicode.IsDigit(c) {
+ return false
+ }
+ }
+ return true
+}