- name: Set nightly as the default toolchain command: "rustup default nightly-{{ rust_date }}" args: creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu" - name: Install the musl target command: rustup target add x86_64-unknown-linux-musl args: creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl" # Needed by rust-analyzer (rust-analyzer will attempt to install via rustup on its own, but this will install it manually). - name: Install the nightly rust-src command: rustup component add rust-src args: creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/lib/rustlib/manifest-rust-src" - name: Install the nightly rust-analyzer command: rustup component add rust-analyzer args: creates: "{{ account_homedir.stdout }}/.rustup/toolchains/nightly-{{ rust_date }}-x86_64-unknown-linux-gnu/bin/rust-analyzer" - name: Create directories file: name: "{{ account_homedir.stdout }}/{{ item }}" state: directory mode: 0755 owner: "{{ account_name.stdout }}" group: "{{ group_name.stdout }}" loop: - .cargo - name: Copy files no_log: true copy: src: "files/{{ item.src }}" dest: "{{ account_homedir.stdout }}/{{ item.dest }}" mode: 0600 owner: "{{ account_name.stdout }}" group: "{{ group_name.stdout }}" loop: - src: cargo_credentials.toml dest: .cargo/credentials - src: cargo_config.toml dest: .cargo/config