From 2286485bb789c467919923010b08db919fee7e60 Mon Sep 17 00:00:00 2001 From: Joakim Hulthe Date: Thu, 3 Oct 2024 21:39:38 +0200 Subject: [PATCH] Add command to fix git remotes --- tree/.config/nushell/config.nu | 1 + tree/.local/nu/git.nu | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 tree/.local/nu/git.nu 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)" + } +}