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
}
}
|