1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

homebrew_tap: Add support for brew search path (#1708)

* homebrew_tap: Add support for brew search path

User can specify search path for brew executable.

Fixes: #1702

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>

* Change version

Co-authored-by: Felix Fontein <felix@fontein.de>

Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
Abhijeet Kasurde 2021-02-01 13:12:32 +05:30 committed by GitHub
parent 9c648c8e3a
commit d0f097c871
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 3 deletions

View file

@ -0,0 +1,2 @@
minor_changes:
- homebrew_tap - add support to specify search path for ``brew`` executable (https://github.com/ansible-collections/community.general/issues/1702).

View file

@ -45,6 +45,12 @@ options:
required: false required: false
default: 'present' default: 'present'
type: str type: str
path:
description:
- "A ':' separated list of paths to search for C(brew) executable."
default: '/usr/local/bin:/opt/homebrew/bin'
type: path
version_added: '2.1.0'
requirements: [ homebrew ] requirements: [ homebrew ]
''' '''
@ -127,7 +133,7 @@ def add_tap(module, brew_path, tap, url=None):
def add_taps(module, brew_path, taps): def add_taps(module, brew_path, taps):
'''Adds one or more taps.''' '''Adds one or more taps.'''
failed, unchanged, added, msg = False, 0, 0, '' failed, changed, unchanged, added, msg = False, False, 0, 0, ''
for tap in taps: for tap in taps:
(failed, changed, msg) = add_tap(module, brew_path, tap) (failed, changed, msg) = add_tap(module, brew_path, tap)
@ -182,7 +188,7 @@ def remove_tap(module, brew_path, tap):
def remove_taps(module, brew_path, taps): def remove_taps(module, brew_path, taps):
'''Removes one or more taps.''' '''Removes one or more taps.'''
failed, unchanged, removed, msg = False, 0, 0, '' failed, changed, unchanged, removed, msg = False, False, 0, 0, ''
for tap in taps: for tap in taps:
(failed, changed, msg) = remove_tap(module, brew_path, tap) (failed, changed, msg) = remove_tap(module, brew_path, tap)
@ -211,14 +217,23 @@ def main():
name=dict(aliases=['tap'], type='list', required=True, elements='str'), name=dict(aliases=['tap'], type='list', required=True, elements='str'),
url=dict(default=None, required=False), url=dict(default=None, required=False),
state=dict(default='present', choices=['present', 'absent']), state=dict(default='present', choices=['present', 'absent']),
path=dict(
default="/usr/local/bin:/opt/homebrew/bin",
required=False,
type='path',
),
), ),
supports_check_mode=True, supports_check_mode=True,
) )
path = module.params['path']
if path:
path = path.split(':')
brew_path = module.get_bin_path( brew_path = module.get_bin_path(
'brew', 'brew',
required=True, required=True,
opt_dirs=['/usr/local/bin', '/opt/homebrew/bin'] opt_dirs=path,
) )
taps = module.params['name'] taps = module.params['name']