Home

dotnix @3b84780938f9249bcbfead57ccabae73685ce246 - refs - log -
-
https://git.jolheiser.com/dotnix.git
My nix dotfiles
dotnix / apps / nogui / nushell / 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
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
  }
}