about summary refs log tree commit diff
path: root/users/riking/dotfiles/fish/functions/gh-clone.fish
blob: 109ec353f6dbede992865f455684ece7f8347360 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function gh-clone --description 'Clone and CD to a github repository'
    if test (count $argv) -eq 1
        set user (string split "/" -- $argv[1])[1]
        set repo (string split "/" -- $argv[1])[2]
    else
        set user $argv[1]
        set repo $argv[2]
    end

    if test -d "$HOME/go/src/github.com/$user/$repo"
        cd "$HOME/go/src/github.com/$user/$repo"
        return 0
    end
    mkdir -p "$HOME/go/src/github.com/$user"
    cd "$HOME/go/src/github.com/$user"
    git clone "git@github.com:$user/$repo.git"
    cd "$HOME/go/src/github.com/$user/$repo"
end