diff --git a/modules/scripts/open-repo-url.nix b/modules/scripts/open-repo-url.nix new file mode 100644 index 00000000..35e5b5f0 --- /dev/null +++ b/modules/scripts/open-repo-url.nix @@ -0,0 +1,32 @@ +{ withSystem, ... }: + +let + name = "open-repo-url"; +in +{ + perSystem = + { pkgs, ... }: + { + packages.${name} = pkgs.writeShellApplication { + inherit name; + + runtimeInputs = with pkgs; [ coreutils git ]; + + text = '' + repo_url=$(git remote get-url origin | sed -E 's#(git|forgejo)@([A-Za-z0-9.-]+):#https://\2/#;s#.git$##') + + repo_url="''${repo_url//ssh.oliverdavies.uk/code.oliverdavies.uk}" + + xdg-open "$repo_url" + ''; + }; + }; + + flake.modules.homeManager.base = + { pkgs, ... }: + { + home.packages = [ + (withSystem pkgs.system (psArgs: psArgs.config.packages.${name})) + ]; + }; +}