--- - name: "Check installed rust version" ansible.builtin.command: cmd: "mise current rust" register: rust_current_version changed_when: false failed_when: false - name: "Install rust {{ rust_toolchain }}" ansible.builtin.command: cmd: "mise use --global rust@{{ rust_toolchain }}" changed_when: true when: rust_toolchain not in rust_current_version.stdout - name: "Install rust components" ansible.builtin.command: cmd: "mise exec rust -- rustup component add {{ item }}" register: rust_component_result changed_when: "'is up to date' not in rust_component_result.stdout" loop: "{{ rust_components }}" - name: "Remove cargo default shell profile modification" ansible.builtin.lineinfile: path: "{{ ansible_facts['env']['HOME'] }}/.bashrc" line: '. "$HOME/.cargo/env"' state: "absent" - name: "Add cargo bin to shell profile" ansible.builtin.blockinfile: path: "{{ ansible_facts['env']['HOME'] }}/.bashrc" state: "present" prepend_newline: true append_newline: true marker: "# ==== {mark} ANSIBLE RUST CONFIG" block: | if [ -d "$HOME/.cargo/bin" ]; then export PATH="$HOME/.cargo/bin:$PATH" fi