summaryrefslogtreecommitdiffstatshomepage
path: root/justfile
blob: fb6305ca4b5557fc8567982c1cab12e9fee86fb2 (plain)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# set positional-arguments := true

EMAIL := 'tobyv13@gmail.com'
ZSH_COMP_DIR := join(env_var('HOME'), '/.local/share/zsh/site-functions')
BASH_COMP_DIR := join(env_var('HOME'), '/.local/share/bash-completion/completions')

stow:
    stow --target={{ env_var('HOME') }} */

unstow:
    stow --target={{ env_var('HOME') }} --delete */

install +TARGETS:
    for target in {{TARGETS}}; do just $target; done

rustup:
    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path
    rustup completions bash >{{ BASH_COMP_DIR }}/completions/rustup;
    rustup completions zsh >{{ ZSH_COMP_DIR }}/_rustup;
    rustup completions bash cargo >{{ BASH_COMP_DIR }}/completions/cargo;
    rustup completions zsh cargo >{{ ZSH_COMP_DIR }}/_cargo)

cargo:
    command -v cargo || just rustup
    command -v cargo-quickinstall || cargo install cargo-quickinstall

starship: cargo
    cargo quickinstall starship --locked
    starship completions bash >{{ BASH_COMP_DIR }}/completions/starship;
    starship completions zsh >{{ ZSH_COMP_DIR }}/_starship

# Install manually with cargo see https://github.com/sharkdp/bat/issues/2106
bat:
    cargo quickinstall bat --target {{ arch() }}-unknown-{{ os() }}-mus
    curl -sL https://raw.githubusercontent.com/sharkdp/bat/master/assets/completions/bat.bash.in >{{ BASH_COMP_DIR }}/completions/bat
    curl -sL https://raw.githubusercontent.com/sharkdp/bat/master/assets/completions/bat.zsh.in >{{ ZSH_COMP_DIR }}/_bat

fd:
    cargo quickinstall fd-find
    curl -sL https://raw.githubusercontent.com/sharkdp/fd/master/contrib/completion/_fd >{{ ZSH_COMP_DIR }}/_fd

ripgrep:
    cargo install ripgrep
    curl -sL https://raw.githubusercontent.com/BurntSushi/ripgrep/master/complete/_rg >{{ ZSH_COMP_DIR }}/_rg

chtsh:
    curl https://cht.sh/:cht.sh >~/.local/bin/cht.sh
    chmod +x ~/.local/bin/cht.sh
    curl https://cht.sh/:bash_completion >{{ BASH_COMP_DIR }}/completions/cht
    curl https://cheat.sh/:zsh >{{ ZSH_COMP_DIR }}/_cht

git-open:
    curl -sL "https://raw.githubusercontent.com/paulirish/git-open/master/git-open" >~/.local/bin/git-open &&
    chmod +x ~/.local/bin/git-open;

gh:
    #!/usr/bin/env bash
    set -euxo pipefail
    td=$(mktemp -d)
    arch="$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/ | sed s/armv7l/armv6/)"
    tag="$(curl -sI https://github.com/cli/cli/releases/latest | grep -Po 'tag\/v?\K(\S+)')"
    name="gh_${tag}_linux_${arch}"
    url="https://github.com/cli/cli/releases/latest/download/${name}.tar.gz"
    curl -sL $url | tar -C $td -xz
    test -x $td/$name/bin/gh
    install -Dm 755 $td/$name/bin/gh ~/.local/bin/gh
    rm -rf $td
    gh completion --shell bash >{{ BASH_COMP_DIR }}/gh
    gh completion --shell zsh >{{ ZSH_COMP_DIR }}/_gh

fzf:
    #!/usr/bin/env sh
    set -euxo pipefail
    td=$(mktemp -d)
    tag="$(curl -sI https://github.com/junegunn/fzf/releases/latest | grep -Po 'tag\/v?\K(\S+)')"
    alt_arch="$(echo {{arch()}} | sed s/aarch64/arm64/ | sed s/x86_64/amd64/ | sed s/armv7l/armv7/)"
    name="fzf-${tag}-{{ os() }}_${alt_arch}"
    url="https://github.com/junegunn/fzf/releases/latest/download/${name}.tar.gz"
    curl -sL $url | tar -C $td -xz
    test -x $td/fzf
    rm -f ~/.local/bin/fzf
    install -Dm 755 $td/fzf ~/.local/bin/fzf
    rm -rf $td
    curl -sL https://raw.githubusercontent.com/junegunn/fzf/master/shell/completion.bash >{{ BASH_COMP_DIR }}/completions/fzf
    curl -sL https://raw.githubusercontent.com/junegunn/fzf/master/shell/completion.zsh >{{ ZSH_COMP_DIR }}/_fzf
    curl -sL https://raw.githubusercontent.com/junegunn/fzf/master/shell/key-bindings.bash >~/.bash/fzf-key-bindings.sh
    curl -sL https://raw.githubusercontent.com/junegunn/fzf/master/shell/key-bindings.zsh >~/.zsh/fzf-key-bindings.zsh 

gpg:
    gpg --auto-key-locate keyserver --locate-keys {{ EMAIL }}
    gpg --import-ownertrust {{ join(env_var('HOME'), '.gnupg/trustfile.txt') }}