def "forge types" [] { ["github", "gitea", "jojodev", "codeberg"] } export def clone [ repo: string # Repo name --forge (-f) = "github": string@"forge types" # Forge type (github, gitea, jojodev, codeberg) --owner (-o): string # Owner (default: current dir name) ] { mut id = 'gh' if $forge == 'gitea' { $id = 'gt' } else if $forge == 'jojodev' { $id = 'jj' } else if $forge == 'codeberg' { $id = 'cb' } mut namespace = ($env.PWD | path basename) if $owner != '' { $namespace = $owner } let origin = $'ssh:($id):jolheiser/($repo).git' let upstream = $'($id):($namespace)/($repo).git' ^git clone $origin cd $repo if $namespace != 'jolheiser' { ^git remote add upstream $upstream ^git fetch upstream } }