Created
April 25, 2023 16:55
-
-
Save Israphel/6bfd426743a644cb8bf17f6a52483c4b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
- name: Check if brew binary exists | |
ansible.builtin.stat: | |
path: "{{ homebrew_prefix }}/bin/brew" | |
register: brew_check | |
- name: Determine Homebrew ownership variables | |
ansible.builtin.set_fact: | |
homebrew_user: "{{ ansible_user_id }}" | |
homebrew_group: "{{ ansible_user_gid }}" | |
- name: Ensure Homebrew parent directory has correct permissions (M1) | |
become: yes | |
ansible.builtin.file: | |
path: "{{ homebrew_prefix }}" | |
state: directory | |
owner: "{{ homebrew_user }}" | |
group: "{{ homebrew_group }}" | |
mode: 0775 | |
when: | |
- ansible_machine == 'arm64' | |
- not brew_check.stat.exists | |
- name: Create Homebrew folders | |
become: yes | |
ansible.builtin.file: | |
path: "{{ homebrew_prefix }}/{{ item }}" | |
state: directory | |
owner: "{{ homebrew_user }}" | |
group: "{{ homebrew_group }}" | |
mode: 0775 | |
loop: "{{ homebrew_folders }}" | |
when: not brew_check.stat.exists | |
- name: Clone Homebrew | |
ansible.builtin.git: | |
repo: https://github.com/Homebrew/brew | |
version: master | |
dest: "{{ homebrew_prefix }}/Homebrew" | |
update: false | |
depth: 1 | |
when: not brew_check.stat.exists | |
- name: Symlink brew binary | |
become: yes | |
ansible.builtin.file: | |
src: "{{ homebrew_prefix }}/Homebrew/bin/brew" | |
dest: "{{ homebrew_prefix }}/bin/brew" | |
state: link | |
when: not brew_check.stat.exists | |
- name: Ensure Homebrew bin directory is in path (M1) | |
become: yes | |
ansible.builtin.lineinfile: | |
path: /etc/paths | |
state: present | |
line: "{{ homebrew_prefix }}/bin" | |
insertbefore: '/usr/bin' | |
when: | |
- ansible_machine == 'arm64' | |
- name: Update Homebrew | |
community.general.packaging.os.homebrew: | |
update_homebrew: true | |
- name: Upgrade Homebrew Packages | |
community.general.packaging.os.homebrew: | |
upgrade_all: true | |
when: | |
- upgrade_brew_packages | |
- name: Install Homebrew Packages | |
community.general.packaging.os.homebrew: | |
name: "{{ item }}" | |
state: present | |
register: download | |
until: download is succeeded | |
loop: "{{ brew_packages }}" | |
- name: Install Homebrew Cask Packages | |
community.general.packaging.os.homebrew_cask: | |
name: "{{ item }}" | |
state: present | |
install_options: force | |
sudo_password: "{{ ansible_become_password | default(omit) }}" | |
register: download | |
until: download is succeeded | |
loop: "{{ brew_cask_packages }}" | |
changed_when: false |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment