-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdev-tools.yaml
More file actions
executable file
·464 lines (401 loc) · 15.9 KB
/
Copy pathdev-tools.yaml
File metadata and controls
executable file
·464 lines (401 loc) · 15.9 KB
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
#!/usr/bin/env ansible-playbook
---
- name: "Install and configure development tools"
hosts: localhost
vars:
configs:
- stylua
- yamllint
tasks:
- name: "Create symlink for configuration directories"
ansible.builtin.file:
src: "{{ playbook_dir }}/config/{{ item }}"
dest: "{{ ansible_facts['user_dir'] }}/.config/{{ item }}"
state: link
owner: "{{ ansible_facts['user_uid'] }}"
group: "{{ ansible_facts['user_gid'] }}"
loop: "{{ configs }}"
# Core developer tools
- name: "Install core developer packages"
community.general.pacman:
name:
- bats # Bash Automated Testing System
- go-task # A task runner written in Go
- mise # The front-end to your dev env
- serie # A rich git commit graph in your terminal
state: present
become: true
- name: "Install core developer tools from AUR"
kewlfft.aur.aur:
name:
- devbox-bin # A command-line tool that lets you easily create isolated shells for development.(Written in Go.Prebuilt version)
- lazymake-bin # Modern TUI for Makefiles with interactive target selection, dependency visualization, and command safety analysis
- tenv-bin # OpenTofu, Terraform, Terragrunt, Terramate and Atmos version manager, written in Go
- ueberzugpp # Command line utility which allows to display images in the terminal, written in C++
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
# Python and notebooks
- name: "Install Python platform packages"
community.general.pacman:
name:
- python-cairosvg # SVG converter based on Cairo. It can export SVG files to PDF, PostScript and PNG files
- python-jupyter-client
- python-pynvim # Python client for Neovim
state: present
become: true
- name: "Install pipx"
community.general.pacman:
name: python-pipx
state: present
become: true
- name: "Install UV"
community.general.pipx:
name: uv # An extremely fast Python package installer and resolver written in Rust
state: present
- name: "Install Virtualenv"
community.general.pipx:
name: virtualenv
state: present
- name: "Install VirtualFish"
community.general.pipx:
name: virtualfish # Fish shell tool for managing Python virtual environments
state: present
- name: "Install iPython"
community.general.pipx:
name: ipython
state: present
- name: "Install Jupyterlab"
community.general.pipx:
name: jupyterlab
state: present
- name: "Install Jupyterlab Vim"
community.general.pipx:
name: jupyterlab-vim
state: present
install_deps: true
- name: "Install TimeWeb CLI"
community.general.pipx:
name: twc-cli
state: present
- name: "Install pnglatex"
community.general.pipx:
name: pnglatex
state: present
- name: "Install function-pythonic"
community.general.pipx:
name: crossplane-function-pythonic
state: present
- name: "Install Python visualization packages from AUR"
kewlfft.aur.aur:
name:
- python-kaleido-bin # Static image export for web-based visualization libraries with zero dependencies
- python-plotly # An open-source, interactive graphing library
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
# Languages and runtimes
- name: "Install language runtimes"
community.general.pacman:
name:
- bun # Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
- jdk-openjdk # OpenJDK Java 26 development kit
- lua # Powerful lightweight programming language designed for extending applications
- luarocks # Deployment and management system for Lua modules
- npm # JavaScript package manager
- ruby # An object-oriented language for quick and easy programming
- rust # Systems programming language focused on safety, speed and concurrency
state: present
become: true
- name: "Install Node version manager"
community.general.npm:
name: n
global: true
state: present
become: true
- name: "Install 'neovim' Node package"
community.general.npm:
name: neovim
global: true
state: present
become: true
- name: "Install tree-sitter-cli Rust package"
community.general.cargo:
name: tree-sitter-cli
- name: "Install texlab Rust package"
community.general.cargo:
name: texlab
# Linters and code tools
- name: "Install linters and code tools"
community.general.pacman:
name:
- ast-grep # CLI tool for code structural search, lint and rewriting
- eslint # An AST-based pattern checker for JavaScript
- python-flake8 # The modular source code checker
- prettier # An opinionated code formatter for JS, JSON, CSS, YAML and much more
- python-black # Uncompromising Python code formatter
- shellcheck # Shell script analysis tool
- yamllint # Linter for YAML files
state: present
become: true
- name: "Install linters from AUR"
kewlfft.aur.aur:
name:
- stylua # Code formatter for Lua
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
- name: "Create GitHub installer state directory"
ansible.builtin.file:
path: "{{ ansible_facts['user_dir'] }}/.local/state/ansible-github"
state: directory
mode: "0755"
- name: "Install yaml-diff"
quera.github.install_from_github:
repo: sters/yaml-diff
asset_regex: yaml-diff.*\.tar\.gz
version_file: "{{ ansible_facts['user_dir'] }}/.local/state/ansible-github/yaml-diff.version"
move_rules:
- src_regex: yaml-diff
dst: "{{ ansible_facts['user_dir'] }}/.local/bin/"
mode: "0755"
- name: "Install diffnest"
quera.github.install_from_github:
repo: sters/diffnest
asset_regex: diffnest.*\.tar\.gz
version_command: "{{ ansible_facts['user_dir'] }}/.local/bin/diffnest --version"
move_rules:
- src_regex: diffnest
dst: "{{ ansible_facts['user_dir'] }}/.local/bin/"
mode: "0755"
# Git and workflow tools
- name: "Install Git workflow packages"
community.general.pacman:
name:
- cocogitto # Set of CLI tools for the conventional commit and semver specifications
- git-filter-repo # Quickly rewrite git repository history (filter-branch replacement)
state: present
become: true
- name: "Install Git workflow tools from AUR"
kewlfft.aur.aur:
name:
- act # Run your GitHub Actions locally
- bfg # Removes large or troublesome blobs like git-filter-branch does, but faster.
- git-koji-bin # An interactive CLI for creating conventional commits
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
# Ansible and automation
- name: "Install Ansible packages"
community.general.pacman:
name:
- ansible-lint # Checks playbooks for practices and behaviour that could potentially be improved.
state: present
become: true
- name: "Install ansible-dev-tools"
community.general.pipx:
name: ansible-dev-tools
state: present
# SQL, API and databases
- name: "Install SQL tools from AUR"
kewlfft.aur.aur:
name:
- harlequin # The SQL IDE for Your Terminal
- harlequin-mysql # The MySQL adapter for Harlequin
- lazysql # A cross-platform TUI database management tool written in Go
- redisinsight # Desktop manager that provides an intuitive and efficient GUI for Redis, allowing you to interact with your databases, monitor, and manage your data.
- sqlit # The lazygit of SQL databases - a lightweight TUI for SQL Server, PostgreSQL, MySQL, SQLite, and more
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
- name: "Install API client dependencies"
community.general.pacman:
name:
- webkit2gtk-4.1 # Web content engine for GTK
state: present
become: true
- name: "Install API clients from AUR"
kewlfft.aur.aur:
name:
- bruno-bin # Opensource API Client for Exploring and Testing APIs
- hoppscotch-bin # Hoppscotch. Open source API development ecosystem
- posting # The modern API client that lives in your terminal
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
# Network, diagnostics and benchmarks
- name: "Install diagnostics and benchmark packages"
community.general.pacman:
name:
- gping # Ping, but with a graph
- lnav # A curses-based tool for viewing and analyzing log files
- siege # An http regression testing and benchmarking utility
- vegeta # HTTP load testing tool
state: present
become: true
- name: "Install diagnostics and benchmark tools from AUR"
kewlfft.aur.aur:
name:
- apache-tools # Useful Apache tools - htdigest, htpasswd, ab (Apache Benchmark), htdbm
- doggo-bin # Command-line DNS client for humans
- hey-bin # HTTP load generator, ApacheBench (ab) replacement
- hwatch # A modern alternative to the watch command
- sipcalc # An advanced console based IP subnet calculator
- viddy # A modern watch command
- wrk # Modern HTTP benchmarking tool
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
# Cloud, Kubernetes and GitOps
- name: "Install Cloud and Kubernetes packages"
community.general.pacman:
name:
- argocd # Declarative continuous deployment for Kubernetes
- istio # Istio configuration command line utility for service operators to debug and diagnose their Istio mesh
- operator-sdk # SDK for building Kubernetes applications
- packer # tool for creating identical machine images for multiple platforms from a single source configuration
state: present
become: true
notify:
- "Generate argocd fish completions"
- "Generate istioctl fish completions"
- name: "Install Cloud and Kubernetes tools from AUR"
kewlfft.aur.aur:
name:
- argonaut-bin # A GitOps CLI tool for managing ArgoCD applications
- cloud-sql-proxy-bin # Google Cloud SQL Auth proxy
- dyff-bin # diff tool for YAML files
- flux-bin # Open and extensible continuous delivery solution for Kubernetes
- flux-operator # GitOps on Autopilot Mode
- google-cloud-cli # A set of command-line tools for the Google Cloud Platform. Includes gcloud (with beta and alpha commands), gsutil, and bq.
- google-cloud-cli-gke-gcloud-auth-plugin # A google-cloud-sdk component that provides a kubectl authentication plugin for GKE.
- google-cloud-cli-gsutil # Cloud Storage Command Line Tool: gsutil is not the recommended CLI for Cloud Storage
- helm-ls-bin # Language server for Helm
- k0sctl # A bootstrapping and management tool for k0s clusters.
- kcl-lang # KCL Programming Language
- krew # Krew is the package manager for kubectl plugins
- rancher-k3d-bin # Little helper to run Rancher Labs k3s in Docker
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
notify:
- "Generate cloud-sql-proxy fish completions"
- name: "Install template and Kafka tools from AUR"
kewlfft.aur.aur:
name:
- gomplate-bin # A flexible commandline tool for template rendering. Supports lots of local and remote datasources
- kafkactl # Command Line Tool for managing Apache Kafka
- kaskade # A text user interface for Kafka. Interact and consume topics from your terminal in style!
- kcat-cli # A generic non-JVM producer and consumer for Apache Kafka, think of it as a netcat for Kafka
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
# Go toolchain
- name: 'Create "g" installer cache directory'
ansible.builtin.file:
path: "{{ ansible_facts['user_dir'] }}/.cache"
state: directory
mode: "0755"
- name: 'Download "g" install script'
ansible.builtin.get_url:
url: https://raw.githubusercontent.com/stefanmaric/g/master/bin/install
dest: "{{ ansible_facts['user_dir'] }}/.cache/g-install"
mode: "0755"
force: true
changed_when: false
- name: 'Execute "g" install script'
ansible.builtin.command:
cmd: "{{ ansible_facts['user_dir'] }}/.cache/g-install -y"
register: g_install
changed_when: >-
'g has been successfully installed' in g_install.stdout
or 'g has been successfully upgraded' in g_install.stdout
# Learning and documentation
- name: "Install learning and documentation packages"
community.general.pacman:
name:
- texlive-bin # TeX Live binaries
- texlive-latex # TeX Live - LaTeX fundamental packages
- texlive-latexextra # TeX Live - LaTeX additional packages
- texlive-meta # Metapackage to install Tex Live
- texlive-plaingeneric # TeX Live - Plain (La)TeX packages
state: present
become: true
- name: "Install learning tools from AUR"
kewlfft.aur.aur:
name:
- exercism # Command line tool for exercism.io
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
# AI tools
- name: "Install AI packages"
community.general.pacman:
name:
- ollama # Create, run and share large language models (LLMs)
state: present
become: true
- name: "Install AI tools from AUR"
kewlfft.aur.aur:
name:
- claude-code # An agentic coding tool that lives in your terminal
- claude-desktop-native # Unofficial Claude Desktop for Linux
- codebase-memory-mcp-ui-bin # High-performance code intelligence MCP server with persistent knowledge graph (with UI)
- crush-bin # A powerful terminal-based AI assistant for developers, providing intelligent coding assistance directly in your terminal.
- openai-codex-bin # Arch Linux package for OpenAI's Codex CLI - Auto Updated
- opencode-bin # The AI coding agent built for the terminal.
- opencode-qwencode-oauth # Qwen OAuth authentication plugin for opencode with multi-account rotation
- pi # AI coding agent for the terminal — minimal, extensible and optimized for tool use
- qwen-code-bin # Open-source AI agent based on Gemini CLI by QwenLM
- rtk-bin # CLI proxy that reduces LLM token consumption by 60-90% on common dev commands
use: "{{ aur_helper }}"
state: present
become: true
become_user: "{{ aur_builder_user }}"
- name: "Install 'skills' Node package"
community.general.npm:
name: skills
global: true
state: present
become: true
- name: "Install 'codebase' Node package"
community.general.npm:
name: '@autodev/codebase'
global: true
state: present
become: true
- name: "Install 'opencode-codebase-index' Node package"
community.general.npm:
name: 'opencode-codebase-index'
global: true
state: present
become: true
- name: "Enable Ollama"
ansible.builtin.systemd:
name: ollama
state: started
enabled: true
become: true
handlers:
- name: "Generate argocd fish completions"
ansible.builtin.shell:
cmd: argocd completion fish > "{{ ansible_facts['user_dir'] }}/.config/fish/completions/argocd.fish"
changed_when: true
- name: "Generate istioctl fish completions"
ansible.builtin.shell:
cmd: istioctl completion fish > "{{ ansible_facts['user_dir'] }}/.config/fish/completions/istioctl.fish"
changed_when: true
- name: "Generate cloud-sql-proxy fish completions"
ansible.builtin.shell:
cmd: cloud-sql-proxy completion fish > "{{ ansible_facts['user_dir'] }}/.config/fish/completions/cloud-sql-proxy.fish"
changed_when: true