mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
homebrew_cask: reinstall when force is install option (#4090)
* homebrew_cask: reinstall when force is install option * add changelog entry * Fix OSX CI runs - run as non-root * test with cask that has no macos dependencies * use `brooklyn` cask to test
This commit is contained in:
parent
2ec37702de
commit
8b95c56030
5 changed files with 87 additions and 1 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- homebrew_cask - fix force install operation (https://github.com/ansible-collections/community.general/issues/3703).
|
|
@ -102,6 +102,12 @@ EXAMPLES = '''
|
||||||
state: present
|
state: present
|
||||||
install_options: 'debug,appdir=/Applications'
|
install_options: 'debug,appdir=/Applications'
|
||||||
|
|
||||||
|
- name: Install cask with force option
|
||||||
|
community.general.homebrew_cask:
|
||||||
|
name: alfred
|
||||||
|
state: present
|
||||||
|
install_options: force
|
||||||
|
|
||||||
- name: Allow external app
|
- name: Allow external app
|
||||||
community.general.homebrew_cask:
|
community.general.homebrew_cask:
|
||||||
name: alfred
|
name: alfred
|
||||||
|
@ -600,7 +606,7 @@ class HomebrewCask(object):
|
||||||
self.message = 'Invalid cask: {0}.'.format(self.current_cask)
|
self.message = 'Invalid cask: {0}.'.format(self.current_cask)
|
||||||
raise HomebrewCaskException(self.message)
|
raise HomebrewCaskException(self.message)
|
||||||
|
|
||||||
if self._current_cask_is_installed():
|
if '--force' not in self.install_options and self._current_cask_is_installed():
|
||||||
self.unchanged_count += 1
|
self.unchanged_count += 1
|
||||||
self.message = 'Cask already installed: {0}'.format(
|
self.message = 'Cask already installed: {0}'.format(
|
||||||
self.current_cask,
|
self.current_cask,
|
||||||
|
|
6
tests/integration/targets/homebrew_cask/aliases
Normal file
6
tests/integration/targets/homebrew_cask/aliases
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
shippable/posix/group1
|
||||||
|
skip/aix
|
||||||
|
skip/freebsd
|
||||||
|
skip/rhel
|
||||||
|
skip/docker
|
||||||
|
skip/python2.6
|
|
@ -0,0 +1 @@
|
||||||
|
cask: brooklyn
|
71
tests/integration/targets/homebrew_cask/tasks/main.yml
Normal file
71
tests/integration/targets/homebrew_cask/tasks/main.yml
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
####################################################################
|
||||||
|
# WARNING: These are designed specifically for Ansible tests #
|
||||||
|
# and should not be used as examples of how to write Ansible roles #
|
||||||
|
####################################################################
|
||||||
|
|
||||||
|
# Test code for the homebrew_cask module.
|
||||||
|
# Copyright: (c) 2022, Joseph Torcasso <jtorcass@redhat.com>
|
||||||
|
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||||
|
---
|
||||||
|
- name: Find brew binary
|
||||||
|
command: which brew
|
||||||
|
register: brew_which
|
||||||
|
when: ansible_distribution in ['MacOSX']
|
||||||
|
|
||||||
|
- name: Get owner of brew binary
|
||||||
|
stat:
|
||||||
|
path: "{{ brew_which.stdout }}"
|
||||||
|
register: brew_stat
|
||||||
|
when: ansible_distribution in ['MacOSX']
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: Install cask
|
||||||
|
homebrew_cask:
|
||||||
|
name: "{{ cask }}"
|
||||||
|
state: present
|
||||||
|
become: yes
|
||||||
|
become_user: "{{ brew_stat.stat.pw_name }}"
|
||||||
|
register: cask_install_result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- cask_install_result is changed
|
||||||
|
- "'Cask installed' in cask_install_result.msg"
|
||||||
|
|
||||||
|
- name: Install cask (idempotence)
|
||||||
|
homebrew_cask:
|
||||||
|
name: "{{ cask }}"
|
||||||
|
state: present
|
||||||
|
become: yes
|
||||||
|
become_user: "{{ brew_stat.stat.pw_name }}"
|
||||||
|
register: cask_install_result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- cask_install_result is not changed
|
||||||
|
- "'Cask installed' not in cask_install_result.msg"
|
||||||
|
- "'Cask already installed' in cask_install_result.msg"
|
||||||
|
|
||||||
|
- name: Install cask with force install option
|
||||||
|
homebrew_cask:
|
||||||
|
name: "{{ cask }}"
|
||||||
|
state: present
|
||||||
|
install_options: force
|
||||||
|
become: yes
|
||||||
|
become_user: "{{ brew_stat.stat.pw_name }}"
|
||||||
|
register: cask_install_result
|
||||||
|
|
||||||
|
- assert:
|
||||||
|
that:
|
||||||
|
- cask_install_result is changed
|
||||||
|
- "'Cask installed' in cask_install_result.msg"
|
||||||
|
|
||||||
|
always:
|
||||||
|
- name: Delete cask
|
||||||
|
homebrew_cask:
|
||||||
|
name: "{{ cask }}"
|
||||||
|
state: absent
|
||||||
|
install_options: force
|
||||||
|
become: yes
|
||||||
|
become_user: "{{ brew_stat.stat.pw_name }}"
|
||||||
|
ignore_errors: yes
|
Loading…
Reference in a new issue