diff options
Diffstat (limited to 'roles/go/tasks/main.yml')
| -rw-r--r-- | roles/go/tasks/main.yml | 26 |
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 |
