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 lsps and formatters are installed
8[group('install')]
9ensure-lsp:
10 #!/usr/bin/env bash
11 go install github.com/reteps/dockerfmt@latest
12 go install github.com/google/yamlfmt/cmd/yamlfmt@latest
13 go install github.com/wader/jq-lsp@latest
14 sudo npm install -g markdownlint-cli2
15 sudo npm install -g ansible-language-server
16 sudo npm install -g bash-language-server
17 sudo npm install -g vscode-langservers-extracted
18 sudo npm install -g dockerfile-language-server-nodejs
19 command -v cargo-binstall || cargo install cargo-binstall
20 cargo-binstall -y just-lsp
21 cargo-binstall -y taplo-cli
22 cargo-binstall -y kdlfmt
23 cargo-binstall -y systemd-lsp
24 pipx install ansible-lint
25 pipx install basedpyright
26 pipx install black
27 pipx install isort
28 pipx install nginxfmt
29 echo "Install shellcheck shfmt jq with your distro's package manager"
30
31# Install Go tools
32[group('install')]
33install-go-tools:
34 #!/usr/bin/env bash
35 go_tools=(
36 "golang.org/x/tools/gopls@latest"
37 "github.com/fatih/gomodifytags@latest"
38 "github.com/cweill/gotests/...@latest"
39 "github.com/x-motemen/gore/cmd/gore@latest"
40 "golang.org/x/tools/cmd/guru@latest"
41 "github.com/themimitoof/ipg@latest"
42 )
43 for x in "${go_tools[@]}"; do
44 go install "$x"
45 done
46
47# Install Python tools
48[group('install')]
49install-python-tools:
50 #!/usr/bin/env bash
51 pipx install ansible --include-deps --force
52 py_tools=(
53 "black"
54 "bpython"
55 "pyflakes"
56 "isort"
57 "pipenv"
58 "nose"
59 "poetry"
60 "pytest"
61 "uv"
62 "qbt-helper"
63 "get-def"
64 "print-wp-sources"
65 )
66 for x in "${py_tools[@]}"; do
67 pipx install "$x"
68 done
69 bpy_inject_tools=(
70 "bs4"
71 "matplotlib"
72 "pandas"
73 "qbittorrent-api"
74 "requests"
75 "rich"
76 )
77 for x in "${bpy_inject_tools[@]}"; do
78 pipx inject bpython "$x"
79 done
80
81# Install Node tools
82[group('install')]
83install-node-tools:
84 #!/usr/bin/env bash
85 node_tools=(
86 "@bitwarden/cli"
87 "@catppuccin/inkcat"
88 "prettier"
89 "js-beautify"
90 "stylelint"
91 )
92 for x in "${node_tools[@]}"; do
93 sudo npm install -g "$x"
94 done
95
96# Install Flatpaks
97[group('install')]
98install-flatpaks:
99 #!/usr/bin/env bash
100 sudo flatpak install -y \
101 app.zen_browser.zen \
102 com.calibre_ebook.calibre \
103 com.discordapp.Discord \
104 com.github.iwalton3.jellyfin-media-player \
105 com.nextcloud.desktopclient.nextcloud \
106 fi.skyjake.Lagrange \
107 org.signal.Signal
108
109# vim: ts=4 sts=4 sw=4 et ft=just