From 79887c227b698ac4856dd3f624a437fbdebec6b3 Mon Sep 17 00:00:00 2001 From: Hyperling Date: Tue, 6 Oct 2026 15:49:47 -0700 Subject: [PATCH] android, speed up script by catting a file rather than calling the slow command `android sdk list` every time. --- tasks/workstation/linux/software/android.yml | 29 +++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/tasks/workstation/linux/software/android.yml b/tasks/workstation/linux/software/android.yml index f404855..e513b1a 100644 --- a/tasks/workstation/linux/software/android.yml +++ b/tasks/workstation/linux/software/android.yml @@ -256,14 +256,23 @@ when: coding and not android_sdkmanager_check.stat.exists +# Report the preliminary installed packges. +- name: Workstation | Linux | Software | Android | Report Modules + ansible.builtin.shell: "{{ android_sdkmanager2_list }} > {{ android_report_file }}" + become: true + become_user: "{{ user }}" + register: shell_check + changed_when: shell_check.rc == 0 + when: coding + # These are safe to run multiple times, and uses the new `latest` version. - name: Workstation | Linux | Software | Android | Install | Required Modules ansible.builtin.shell: | set -o pipefail - if ! {{ android_sdkmanager2_list }} | grep -v 'unknown' | grep -q '{{ item }}'; then + if ! cat {{ android_report_file }} | grep -v 'unknown' | grep -q '{{ item }}'; then yes | {{ android_sdkmanager2_install }} '{{ item }}' - if {{ android_sdkmanager2_list }} | grep -q '{{ item }}'; then + if cat {{ android_report_file }} | grep -q '{{ item }}'; then echo "INSTALLED" else echo "FAILED" @@ -281,10 +290,10 @@ - name: Workstation | Linux | Software | Android | Install | Additional Modules ansible.builtin.shell: | set -o pipefail - if ! {{ android_sdkmanager2_list }} | grep -v 'unknown' | grep -q '{{ item }}'; then + if ! cat {{ android_report_file }} | grep -v 'unknown' | grep -q '{{ item }}'; then yes | {{ android_sdkmanager2_install }} '{{ item }}' - if {{ android_sdkmanager2_list }} | grep -q '{{ item }}'; then + if cat {{ android_report_file }} | grep -q '{{ item }}'; then echo "INSTALLED" else echo "FAILED" @@ -303,10 +312,10 @@ - name: Workstation | Linux | Software | Android | Uninstall | Additional Modules ansible.builtin.shell: | set -o pipefail - if {{ android_sdkmanager2_list }} | grep -q '{{ item }}'; then + if cat {{ android_report_file }} | grep -q '{{ item }}'; then yes | {{ android_sdkmanager2_remove }} '{{ item }}' - if {{ android_sdkmanager2_list }} | grep -q '{{ item }}'; then + if cat {{ android_report_file }} | grep -q '{{ item }}'; then echo "FAILED" else echo "REMOVED" @@ -325,10 +334,10 @@ - name: Workstation | Linux | Software | Android | Uninstall | Unused Modules ansible.builtin.shell: | set -o pipefail - if [[ `{{ android_sdkmanager2_list }} | grep -q '{{ item }}'` == 0 ]]; then + if cat {{ android_report_file }} | grep -q '{{ item }}'; then yes | {{ android_sdkmanager2_remove }} '{{ item }}' - if [[ `{{ android_sdkmanager2_list }} | grep -q '{{ item }}'` == 1 ]]; then + if cat {{ android_report_file }} | grep -q '{{ item }}'; then echo "REMOVED" else echo "FAILED" @@ -342,9 +351,9 @@ become_user: "{{ user }}" when: coding -# Report the currently installed packges. +# Report the currently installed packages. - name: Workstation | Linux | Software | Android | Report Modules - ansible.builtin.shell: "{{ android_sdkmanager2_list }} --all > {{ android_report_file }}" + ansible.builtin.shell: "{{ android_sdkmanager2_list }} > {{ android_report_file }}" become: true become_user: "{{ user }}" register: shell_check