justfiles for automating various tasks on my workstation
1# Upgrade Python tools 2[group('install')] 3upgrade-python-tools: 4 #!/usr/bin/env bash 5 pipx list --short | awk '{print $1}' | xargs pipx upgrade 6 7# Ensure formatters are installed 8[group('install')] 9ensure-formatters: 10 #!/usr/bin/env bash 11 cargo install --git https://github.com/nushell/nufmt 12 go install github.com/reteps/dockerfmt@latest 13 go install github.com/google/yamlfmt/cmd/yamlfmt@latest 14 sudo npm install -g markdownlint-cli2 15 pipx install ansible-lint 16 pipx install black 17 pipx install isort 18 pipx install nginxfmt 19 sudo pacman -S shellcheck shfmt jq 20 21# Install todo.txt 22[group('install')] 23install-todotxt: 24 #!/usr/bin/env bash 25 URL=$(curl --silent https://api.github.com/repos/todotxt/todo.txt-cli/releases/latest | jq -r '.assets[] | select(.name| test(".*.tar.gz$")).browser_download_url') 26 FILENAME=$(basename "$URL") 27 DIRNAME=$(basename "$URL" .tar.gz) 28 TEMP_DIR=$(mktemp -d) 29 wget "$URL" -O "${TEMP_DIR}/${FILENAME}" 30 tar -zxvf "${TEMP_DIR}/${FILENAME}" -C "${TEMP_DIR}" 31 sudo cp -fv "${TEMP_DIR}/${DIRNAME}/todo.sh" /usr/local/bin/ 32 rm -rf "$TEMP_DIR" 33 echo "todo.sh successfully installed to /usr/local/bin/" 34 35# Install Go tools 36[group('install')] 37install-go-tools: 38 #!/usr/bin/env bash 39 go_tools=( 40 "golang.org/x/tools/gopls@latest" 41 "github.com/fatih/gomodifytags@latest" 42 "github.com/cweill/gotests/...@latest" 43 "github.com/x-motemen/gore/cmd/gore@latest" 44 "golang.org/x/tools/cmd/guru@latest" 45 "github.com/themimitoof/ipg@latest" 46 ) 47 for x in "${go_tools[@]}"; do 48 go install "$x" 49 done 50 51# Install Python tools 52[group('install')] 53install-python-tools: 54 #!/usr/bin/env bash 55 pipx install ansible --include-deps --force 56 py_tools=( 57 "black" 58 "bpython" 59 "pyflakes" 60 "isort" 61 "pipenv" 62 "nose" 63 "poetry" 64 "pytest" 65 "uv" 66 "qbt-helper" 67 "get-def" 68 "print-wp-sources" 69 ) 70 for x in "${py_tools[@]}"; do 71 pipx install "$x" 72 done 73 bpy_inject_tools=("bs4" "requests" "rich" "qbittorrent-api") 74 for x in "${bpy_inject_tools[@]}"; do 75 pipx inject bpython "$x" 76 done 77 78# Install Node tools 79[group('install')] 80install-node-tools: 81 #!/usr/bin/env bash 82 node_tools=( 83 "@bitwarden/cli" 84 "@catppuccin/inkcat" 85 "prettier" 86 "js-beautify" 87 "stylelint" 88 ) 89 for x in "${node_tools[@]}"; do 90 sudo npm install -g "$x" 91 done 92 93# Install Flatpaks 94[group('install')] 95install-flatpaks: 96 #!/usr/bin/env bash 97 flatpak install -y \ 98 app.zen_browser.zen \ 99 com.bitwarden.desktop \ 100 com.calibre_ebook.calibre \ 101 com.discordapp.Discord \ 102 com.github.iwalton3.jellyfin-media-player \ 103 com.nextcloud.desktopclient.nextcloud \ 104 fi.skyjake.Lagrange 105 106# vim: ts=4 sts=4 sw=4 et ft=just