summaryrefslogtreecommitdiffstats
path: root/roles
diff options
context:
space:
mode:
authorAhmed Abdelhalim <[email protected]>2025-09-02 21:18:51 +0200
committerAhmed Abdelhalim <[email protected]>2025-09-02 21:18:51 +0200
commit3bb76b2262030f27b2369ccbab9cf4af497100fa (patch)
tree610b6a7aa652c22bbb64d6759c3aaa82cebb8617 /roles
parentef64f48a1fdac5a8ad1580991048c1e5d7932f0f (diff)
Add tasks to clean up unwanted go versions
Diffstat (limited to 'roles')
-rw-r--r--roles/go/tasks/main.yml26
1 files changed, 25 insertions, 1 deletions
diff --git a/roles/go/tasks/main.yml b/roles/go/tasks/main.yml
index a7fd08d4..57657989 100644
--- a/roles/go/tasks/main.yml
+++ b/roles/go/tasks/main.yml
@@ -11,6 +11,23 @@
export PATH="$HOME/go/bin:$PATH"
fi
+- name: "Get installed Go versions"
+ ansible.builtin.shell: |
+ set -o pipefail
+ /home/linuxbrew/.linuxbrew/bin/brew list | grep '^go@' | sed 's/go@//'
+ register: installed_go_versions
+ changed_when: false
+ failed_when: false
+
+- name: "Remove unwanted Go versions"
+ ansible.builtin.command:
+ cmd: "/home/linuxbrew/.linuxbrew/bin/brew uninstall go@{{ item }}"
+ with_items: "{{ installed_go_versions.stdout_lines | default([]) }}"
+ when:
+ - installed_go_versions.rc == 0
+ - item not in go_versions
+ changed_when: true
+
- name: "Install and configure Go latest"
when: go_versions | length == 0
block:
@@ -33,8 +50,15 @@
creates: "/home/linuxbrew/.linuxbrew/Cellar/go@{{ item }}"
with_items: "{{ go_versions }}"
+ - name: "Unlink existing Go package"
+ ansible.builtin.command:
+ cmd: "/home/linuxbrew/.linuxbrew/bin/brew unlink go"
+ when: go_global_version != ""
+ failed_when: false
+ changed_when: false
+
- name: "Set specific Go version as global"
ansible.builtin.command:
- cmd: "/home/linuxbrew/.linuxbrew/bin/brew link --force go@{{ go_global_version }}"
+ cmd: "/home/linuxbrew/.linuxbrew/bin/brew link --overwrite go@{{ go_global_version }}"
when: go_global_version != ""
changed_when: true