diff --git a/roles/composer/defaults/main.yaml b/roles/composer/defaults/main.yaml new file mode 100644 index 0000000..4dcdc53 --- /dev/null +++ b/roles/composer/defaults/main.yaml @@ -0,0 +1,2 @@ +--- +composer_upgrade: false diff --git a/roles/composer/meta/argument_specs.yaml b/roles/composer/meta/argument_specs.yaml new file mode 100644 index 0000000..f245971 --- /dev/null +++ b/roles/composer/meta/argument_specs.yaml @@ -0,0 +1,10 @@ +--- +argument_specs: + main: + description: Installs composer if not already installed system-wide + options: + composer_upgrade: + description: Whether to upgrade composer to the latest version if already installed + type: bool + required: false + default: false diff --git a/roles/composer/tasks/main.yml b/roles/composer/tasks/main.yml index 122cb63..f5b624b 100644 --- a/roles/composer/tasks/main.yml +++ b/roles/composer/tasks/main.yml @@ -1,20 +1,24 @@ --- - - name: Test if composer is installed system-wide - stat: + ansible.builtin.stat: path: /usr/bin/composer - register: global_composer + register: _composer_global_executable -- block: - - name: Download latest version of composer locally - get_url: - url: https://getcomposer.org/download/latest-stable/composer.phar - dest: "{{ ansible_user_dir }}/.local/bin/composer" - mode: 0755 +- name: Install composer for user + when: not _composer_global_executable.stat.exists + block: + - name: Check if composer installed + ansible.builtin.stat: + path: "{{ ansible_user_dir }}/.local/bin/composer" + register: _composer_user_executable - - name: Set composer path to use local installation - set_fact: - composer_path: "{{ ansible_user_dir }}/.local/bin/composer" - - when: not global_composer.stat.exists + - name: Download latest version of composer locally + ansible.builtin.get_url: + url: https://getcomposer.org/download/latest-stable/composer.phar + dest: "{{ ansible_user_dir }}/.local/bin/composer" + mode: "0755" + when: (not _composer_user_executable.stat.exists) or composer_upgrade + - name: Set composer path to use local installation + ansible.builtin.set_fact: + composer_path: "{{ ansible_user_dir }}/.local/bin/composer" diff --git a/roles/kimai/meta/main.yaml b/roles/kimai/meta/main.yaml index 427cbf4..8bf591a 100644 --- a/roles/kimai/meta/main.yaml +++ b/roles/kimai/meta/main.yaml @@ -1,3 +1,4 @@ --- dependencies: - - composer + - role: composer + composer_upgrade: "{{ kimai_upgrade }}"