Home

dotnix @9403dfa83eed5bc5ef648097dd2da3eef5208b25 - refs - log -
-
https://git.jolheiser.com/dotnix.git
My nix dotfiles
dotnix / home / nogui / nushell / autoload / clone.nu
- raw -
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module clone {
  def "forge types" [] {
    ["github", "gitea", "jojodev", "codeberg"]
  }
  
  export def main [
    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
    }
  }
}
use clone *