diff --git a/tree/.config/nushell/config.nu b/tree/.config/nushell/config.nu index 96ebe95..dd8123b 100644 --- a/tree/.config/nushell/config.nu +++ b/tree/.config/nushell/config.nu @@ -674,6 +674,7 @@ alias xo = xdg-open # random scripts source ~/.local/nu/readelf.nu source ~/.local/nu/mullvad.nu +source ~/.local/nu/git.nu # init zoxide source ~/.cache/zoxide.nu diff --git a/tree/.local/nu/git.nu b/tree/.local/nu/git.nu new file mode 100644 index 0000000..d07b73f --- /dev/null +++ b/tree/.local/nu/git.nu @@ -0,0 +1,19 @@ +def gitfixremote [ + --name: string = "origin", +] { + let url = (git remote get-url $name) + let parsed = ($url | parse --regex '(https://)?(?P[^/]+)(/|:)(?P[^/]+)/(?P[^/\.]+)') + if ($parsed | is-empty) { + print "Unparseable remote" + return + } + + let parsed = ($parsed | get 0) + + if ($parsed.host in ["github.com" "git.nubo.sh"]) { + git remote set-url $name $"https://($parsed.host)/($parsed.owner)/($parsed.repo).git" + git remote set-url --push $name $"($parsed.host):($parsed.owner)/($parsed.repo).git" + } else { + print $"Unknown host: ($parsed.host)" + } +}