{ flake.modules.homeManager.base = { pkgs, ... }: { home.packages = [ (pkgs.writeShellApplication { name = "clone"; runtimeInputs = with pkgs; [ git ]; text = '' repo_url="$1" repo_url="''${repo_url%.git}" if [[ "$repo_url" =~ ^(git@|https://|ssh://forgejo@)?([^:/]+)[:/](.*)/(.*)$ ]]; then domain="''${BASH_REMATCH[2]}" if [[ "$domain" == "ssh.oliverdavies.uk" ]]; then domain="code.oliverdavies.uk" fi user="''${BASH_REMATCH[3]}" name="''${BASH_REMATCH[4]}" user_path="$XDG_REPOS_DIR/$domain/$user" repo_path="$user_path/$name" [[ -d "$repo_path" ]] && t "$repo_path" && exit 0 mkdir -pv "$repo_path" git clone "$repo_url" "$repo_path" t "$repo_path" else exit 1 fi ''; }) ]; }; }