|
3 | 3 | hosts: localhost |
4 | 4 | gather_facts: true |
5 | 5 |
|
| 6 | + pre_tasks: |
| 7 | + - name: Set effective platform |
| 8 | + ansible.builtin.set_fact: |
| 9 | + effective_platform: "{{ 'windows' if ansible_env.WSL_DISTRO_NAME is defined else ansible_os_family | lower }}" |
| 10 | + |
6 | 11 | vars: |
7 | 12 | tools_to_verify: |
8 | 13 | - { cmd: "git --version", name: "git" } |
|
20 | 25 | - { cmd: "pnpm --version", name: "pnpm" } |
21 | 26 |
|
22 | 27 | windows_tools_to_verify: |
| 28 | + - { cmd: "git --version", name: "git" } |
| 29 | + - { cmd: "just --version", name: "just" } |
| 30 | + - { cmd: "fzf --version", name: "fzf" } |
| 31 | + - { cmd: "bat --version", name: "bat" } |
| 32 | + - { cmd: "eza --version", name: "eza" } |
| 33 | + - { cmd: "rg --version", name: "ripgrep" } |
| 34 | + - { cmd: "jq --version", name: "jq" } |
| 35 | + - { cmd: "starship --version", name: "starship" } |
| 36 | + - { cmd: "node --version", name: "node" } |
| 37 | + - { cmd: "python --version", name: "python" } |
| 38 | + - { cmd: "cargo --version", name: "cargo" } |
| 39 | + - { cmd: "pnpm --version", name: "pnpm" } |
23 | 40 | - { cmd: "dotnet --version", name: "dotnet" } |
24 | 41 | - { cmd: "dotnet --list-runtimes", name: "dotnet-runtimes" } |
25 | 42 | - { cmd: "pwsh --version", name: "powershell" } |
|
39 | 56 | label: "{{ item.name }}" |
40 | 57 | register: verify_results |
41 | 58 | changed_when: false |
42 | | - failed_when: verify_results.rc != 0 |
| 59 | + environment: |
| 60 | + PATH: "{{ ansible_env.HOME }}/.cargo/bin:{{ ansible_env.HOME }}/.local/share/mise/shims:{{ ansible_env.HOME }}/.local/bin:{{ ansible_env.PATH }}" |
| 61 | + when: effective_platform != "windows" |
43 | 62 |
|
44 | 63 | - name: Print verified versions |
45 | 64 | ansible.builtin.debug: |
46 | 65 | msg: "OK {{ item.item.name }}: {{ item.stdout_lines[0] }}" |
47 | 66 | loop: "{{ verify_results.results }}" |
48 | 67 | loop_control: |
49 | 68 | label: "{{ item.item.name }}" |
| 69 | + when: effective_platform != "windows" |
50 | 70 |
|
51 | 71 | - name: Verify scripts are deployed and executable |
52 | 72 | ansible.builtin.stat: |
|
55 | 75 | loop: |
56 | 76 | - ff |
57 | 77 | - ll |
58 | | - when: ansible_os_family != "Windows" |
| 78 | + when: effective_platform != "windows" |
59 | 79 |
|
60 | 80 | - name: Assert scripts are executable |
61 | 81 | ansible.builtin.assert: |
|
67 | 87 | loop: "{{ script_stats.results }}" |
68 | 88 | loop_control: |
69 | 89 | label: "{{ item.item }}" |
70 | | - when: ansible_os_family != "Windows" |
| 90 | + when: effective_platform != "windows" |
71 | 91 |
|
72 | 92 | - name: Verify ll runs successfully |
73 | 93 | ansible.builtin.command: "{{ ansible_env.HOME }}/.local/bin/ll ." |
74 | 94 | changed_when: false |
75 | 95 | register: ll_result |
76 | | - when: ansible_os_family != "Windows" |
| 96 | + when: effective_platform != "windows" |
77 | 97 |
|
78 | 98 | - name: Print ll result |
79 | 99 | ansible.builtin.debug: |
80 | 100 | msg: "OK ll: listed {{ ll_result.stdout_lines | length }} lines" |
81 | | - when: ansible_os_family != "Windows" |
| 101 | + when: effective_platform != "windows" |
82 | 102 |
|
83 | 103 | - name: Verify Windows tool is installed and functional |
84 | | - ansible.builtin.command: "{{ item.cmd }}" |
| 104 | + ansible.builtin.shell: 'powershell.exe -NoProfile -Command "{{ item.cmd }}" 2>/dev/null' # noqa: risky-shell-pipe |
85 | 105 | loop: "{{ windows_tools_to_verify }}" |
86 | 106 | loop_control: |
87 | 107 | label: "{{ item.name }}" |
88 | 108 | register: windows_verify_results |
89 | 109 | changed_when: false |
90 | | - failed_when: windows_verify_results.rc != 0 |
91 | | - when: ansible_os_family == "Windows" |
| 110 | + when: effective_platform == "windows" |
92 | 111 |
|
93 | 112 | - name: Print verified Windows versions |
94 | 113 | ansible.builtin.debug: |
95 | 114 | msg: "OK {{ item.item.name }}: {{ item.stdout_lines[0] }}" |
96 | 115 | loop: "{{ windows_verify_results.results }}" |
97 | 116 | loop_control: |
98 | 117 | label: "{{ item.item.name }}" |
99 | | - when: ansible_os_family == "Windows" |
| 118 | + when: effective_platform == "windows" |
100 | 119 |
|
101 | 120 | - name: Reminder about git signing |
102 | 121 | ansible.builtin.debug: |
|
0 commit comments