- name: Arch Linux provisioning hosts: localhost pre_tasks: - name: Install shared packages become: true community.general.pacman: name: '{{ packages }}' - name: Platform vars tags: platform_vars block: - name: Detect platform ansible.builtin.command: laptop-detect register: is_laptop failed_when: is_laptop.rc == 2 - name: Set platform (desktop) ansible.builtin.set_fact: platform: desktop when: is_laptop.rc == 1 - name: Set platform (laptop) ansible.builtin.set_fact: platform: laptop when: is_laptop.rc == 0 - name: Load desktop specific vars ansible.builtin.include_vars: dir: vars/desktop when: platform == 'desktop' - name: Load laptop specific vars ansible.builtin.include_vars: dir: vars/laptop when: platform == 'laptop' - name: Install platform specific packages become: true community.general.pacman: name: '{{ platform_packages }}' when: platform_packages | length > 0 roles: - common tasks: - name: Generic provisioning ansible.builtin.import_tasks: 'tasks/setup.yml' tags: setup - name: Desktop provisioning ansible.builtin.import_tasks: 'tasks/setup-desktop.yml' when: platform == 'desktop' tags: laptop - name: Laptop provisioning ansible.builtin.import_tasks: 'tasks/setup-laptop.yml' when: platform == 'laptop' tags: laptop - name: Network provisioning ansible.builtin.import_tasks: 'tasks/network.yml' tags: network - name: Systemd provisioning ansible.builtin.import_tasks: 'tasks/systemd.yml' tags: systemd - name: Git provisioning ansible.builtin.import_tasks: 'tasks/git.yml' tags: git - name: MPV provisioning ansible.builtin.import_tasks: 'tasks/mpv.yml' tags: mpv - name: MPD provisioning ansible.builtin.import_tasks: 'tasks/mpd.yml' tags: mpd - name: Syncthing provisioning ansible.builtin.import_tasks: 'tasks/syncthing.yml' tags: syncthing - name: Systemd timer provisioning ansible.builtin.import_tasks: 'tasks/timer.yml' tags: timers handlers: - name: Import default handlers ansible.builtin.import_tasks: 'handlers.yml' - name: Import common role handlers ansible.builtin.import_tasks: 'roles/common/handlers/user.yml' vars_files: - 'vars/main.yml' - 'vars/gpg.yml' - 'vars/mpd.yml'