Files
fedora-provisioning-ansible/tasks/tooling.yml
T

120 lines
3.4 KiB
YAML

---
- name: List globally installed npm packages
ansible.builtin.command: npm list --global --depth=0 --json
register: npm_global_list
changed_when: false
failed_when: false
- name: Install global language servers and formatters
ansible.builtin.command: "npm install --global {{ item }}"
loop: "{{ npm_global_packages }}"
when: item not in ((npm_global_list.stdout | default('{}', true) | from_json).dependencies | default({}))
- name: Check for rustup
ansible.builtin.stat:
path: "{{ user_home }}/.cargo/bin/rustup"
become: false
register: rustup_binary
- name: Download the official rustup installer
ansible.builtin.get_url:
url: https://sh.rustup.rs
dest: /tmp/rustup-init.sh
mode: "0755"
when: not rustup_binary.stat.exists
- name: Install Rust stable with the official rustup installer
ansible.builtin.command:
argv:
- /tmp/rustup-init.sh
- -y
- --default-toolchain
- stable
- --profile
- default
environment:
HOME: "{{ user_home }}"
become: false
when: not rustup_binary.stat.exists
- name: Remove the rustup installer
ansible.builtin.file:
path: /tmp/rustup-init.sh
state: absent
- name: Check the active Rust toolchain
ansible.builtin.command: "{{ user_home }}/.cargo/bin/rustup show active-toolchain"
become: false
register: active_rust_toolchain
changed_when: false
failed_when: false
- name: Select the Rust stable toolchain
ansible.builtin.command: "{{ user_home }}/.cargo/bin/rustup default stable"
become: false
when: active_rust_toolchain.rc != 0 or not active_rust_toolchain.stdout.startswith('stable-')
- name: List installed rustup components
ansible.builtin.command: "{{ user_home }}/.cargo/bin/rustup component list --installed"
become: false
register: installed_rustup_components
changed_when: false
- name: Install Rust development components
ansible.builtin.command: "{{ user_home }}/.cargo/bin/rustup component add {{ item }}"
loop: "{{ rustup_components }}"
become: false
when: installed_rustup_components.stdout_lines | select('match', '^' ~ item ~ '(-|$)') | list | length == 0
- name: Check for StyLua
ansible.builtin.stat:
path: "{{ user_home }}/.cargo/bin/stylua"
become: false
register: stylua_binary
- name: Install StyLua
ansible.builtin.command: "{{ user_home }}/.cargo/bin/cargo install stylua --locked"
become: false
when: not stylua_binary.stat.exists
- name: Check for Starship
ansible.builtin.stat:
path: "{{ user_home }}/.local/bin/starship"
become: false
register: starship_binary
- name: Download the Starship installer
ansible.builtin.get_url:
url: https://starship.rs/install.sh
dest: /tmp/starship-install.sh
mode: "0755"
when: not starship_binary.stat.exists
- name: Install Starship for the workstation user
ansible.builtin.command:
argv:
- /tmp/starship-install.sh
- --yes
- --bin-dir
- "{{ user_home }}/.local/bin"
become: false
when: not starship_binary.stat.exists
- name: Check for Bun
ansible.builtin.stat:
path: "{{ user_home }}/.bun/bin/bun"
become: false
register: bun_binary
- name: Download the Bun installer
ansible.builtin.get_url:
url: https://bun.sh/install
dest: /tmp/bun-install.sh
mode: "0755"
when: not bun_binary.stat.exists
- name: Install Bun for the workstation user
ansible.builtin.command: /tmp/bun-install.sh
become: false
when: not bun_binary.stat.exists