Mercurial > dotfiles
annotate .chezmoiscripts/run_onchange_after_22-install-devtools.sh.tmpl @ 840:f3e87577dd3a
fix: sort keys from template dicts to determistically generate scripts
From http://masterminds.github.io/sprig/dicts.html
> The keys function will return a list of all of the keys in one or more dict types.
> Since a dictionary is unordered, the keys will not be in a predictable order.
> They can be sorted with sortAlpha.
This results in a different ordering of commands in the generated scripts
which break the hashing in chezmoi to determine whether the scripts needs to
be re-run.
author | zegervdv <zegervdv@me.com> |
---|---|
date | Fri, 02 Feb 2024 17:44:49 +0100 |
parents | 3f2440bfd0de |
children | 62335df560d9 03de8f9ab845 |
rev | line source |
---|---|
823
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
1 {{ if (and (eq .chezmoi.os "linux") (eq .chezmoi.osRelease.name "Ubuntu" )) -}} |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
2 {{ $packages := dict |
836 | 3 "fd" (dict "version" "9.0.0" "url" "https://github.com/sharkdp/fd/releases/download/v${VERSION}/fd-v${VERSION}-i686-unknown-linux-musl.tar.gz") |
4 "rg" (dict "version" "14.0.3" "url" "https://github.com/BurntSushi/ripgrep/releases/download/${VERSION}/ripgrep-${VERSION}-x86_64-unknown-linux-musl.tar.gz") | |
5 "delta" (dict "version" "0.16.5" "url" "https://github.com/dandavison/delta/releases/download/${VERSION}/delta-${VERSION}-x86_64-unknown-linux-musl.tar.gz") | |
6 "hyperfine" (dict "version" "1.18.0" "url" "https://github.com/sharkdp/hyperfine/releases/download/v${VERSION}/hyperfine-v${VERSION}-x86_64-unknown-linux-musl.tar.gz") -}} | |
823
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
7 #!/usr/bin/env bash |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
8 |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
9 set -xe |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
10 |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
11 DOWNLOAD_DIR=${TMPDIR:-/tmp}/devtools |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
12 INSTALL_DIR=$HOME/bin |
827
e4d67607d020
feat: install fzf and developer tools manually
zegervdv <zegervdv@me.com>
parents:
823
diff
changeset
|
13 export MANPAGE_DIR=$HOME/.local/man |
e4d67607d020
feat: install fzf and developer tools manually
zegervdv <zegervdv@me.com>
parents:
823
diff
changeset
|
14 |
e4d67607d020
feat: install fzf and developer tools manually
zegervdv <zegervdv@me.com>
parents:
823
diff
changeset
|
15 mkdir -p $MANPAGE_DIR |
823
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
16 |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
17 mkdir -p $DOWNLOAD_DIR |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
18 pushd $DOWNLOAD_DIR |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
19 |
840
f3e87577dd3a
fix: sort keys from template dicts to determistically generate scripts
zegervdv <zegervdv@me.com>
parents:
836
diff
changeset
|
20 {{ range keys $packages | sortAlpha }} |
823
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
21 {{ $meta := get $packages . -}} |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
22 VERSION={{ get $meta "version" }} |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
23 echo "Downloading {{ . }} v{{ get $meta "version" }} ..." |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
24 curl -fsSL {{ get $meta "url" }} | tar --strip-components=1 -xz |
827
e4d67607d020
feat: install fzf and developer tools manually
zegervdv <zegervdv@me.com>
parents:
823
diff
changeset
|
25 install -m 755 $DOWNLOAD_DIR/{{ . }} $INSTALL_DIR/{{ . }} |
823
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
26 {{ end }} |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
27 |
827
e4d67607d020
feat: install fzf and developer tools manually
zegervdv <zegervdv@me.com>
parents:
823
diff
changeset
|
28 find . -name "*.1" | xargs -I {} sh -c 'install {} "$MANPAGE_DIR/$(basename {})"' |
e4d67607d020
feat: install fzf and developer tools manually
zegervdv <zegervdv@me.com>
parents:
823
diff
changeset
|
29 |
823
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
30 popd |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
31 rm -rf $DOWNLOAD_DIR |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
32 |
2e86aa5360eb
feat: install recent fd and ripgrep in home
zegervdv <zegervdv@me.com>
parents:
diff
changeset
|
33 {{ end }} |