diff --git a/ansible/roles/dev-tools/tasks/main.yml b/ansible/roles/dev-tools/tasks/main.yml index fa97789..6c0b4e2 100644 --- a/ansible/roles/dev-tools/tasks/main.yml +++ b/ansible/roles/dev-tools/tasks/main.yml @@ -2,16 +2,83 @@ - name: Ensure core workstation development tools are installed community.general.pacman: name: + # Build essentials - git - base-devel + # CLI tools (infra.standards.md ยง4) - ripgrep + - ripgrep-all - fd - jq - bat - eza + - zoxide + - fzf + - gum + - dust + - bottom + - scrot + - shellcheck + - shfmt + # Git providers CLI + - github-cli + - tea + - glab + # Python toolchain + - ruff + - uv + # DevOps & IaC - ansible + - terraform + - docker + - docker-buildx + - docker-compose + - podman + - cmake + # Security & supply chain + - cosign + - syft + - trivy + - certbot + # Container inspection + - dive + # Email CLI + - himalaya + # Document toolchain (markdown-to-pdf skill) + - typst + - pandoc + # WordPress CLI + - wp-cli + # C/C++ toolchain (cpp skill) + - clang + # CalDAV tools (caldav-webcal skill) + - khal + - vdirsyncer + # 3D/CAD tools (openscad, freecad, f3d skills) + - openscad + - freecad + - f3d + # Terminal + - kitty state: present +- name: Ensure Node.js global CLI tools are installed + become: true + become_user: "{{ system_user }}" + command: pnpm add -g @marp-team/marp-cli + changed_when: false + tags: [nodejs, marp] + +- name: Ensure Python CLI tools are installed via pipx + become: true + become_user: "{{ system_user }}" + command: "pipx install {{ item }}" + loop: + - semgrep + - huggingface_hub[cli] + changed_when: false + tags: [python, pipx] + - name: Ensure redundant and non-core software is removed community.general.pacman: name: