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 echo "Install shellcheck shfmt jq with your distro's package manager" 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=( 74 "bs4" 75 "matplotlib" 76 "pandas" 77 "qbittorrent-api" 78 "requests" 79 "rich" 80 ) 81 for x in "${bpy_inject_tools[@]}"; do 82 pipx inject bpython "$x" 83 done 84 85# Install Node tools 86[group('install')] 87install-node-tools: 88 #!/usr/bin/env bash 89 node_tools=( 90 "@bitwarden/cli" 91 "@catppuccin/inkcat" 92 "prettier" 93 "js-beautify" 94 "stylelint" 95 ) 96 for x in "${node_tools[@]}"; do 97 sudo npm install -g "$x" 98 done 99 100# Install Flatpaks 101[group('install')] 102install-flatpaks: 103 #!/usr/bin/env bash 104 sudo flatpak install -y \ 105 app.zen_browser.zen \ 106 com.calibre_ebook.calibre \ 107 com.discordapp.Discord \ 108 com.github.iwalton3.jellyfin-media-player \ 109 com.nextcloud.desktopclient.nextcloud \ 110 fi.skyjake.Lagrange \ 111 org.signal.Signal 112 113# vim: ts=4 sts=4 sw=4 et ft=just