From 57d407f15fe469382051beb7558e5b835acb635f Mon Sep 17 00:00:00 2001 From: Thomas Woerner <twoerner@redhat.com> Date: Thu, 2 Apr 2020 11:26:32 +0200 Subject: [PATCH] utils/*galaxy*: Make galaxy scripts more generic The namespace and colleciton name have been hard coded. Now variables are used for them. The project prefix and collection prefix are now passed to galaxyify-playbook.py. --- utils/build-galaxy-release.sh | 21 ++++++++++++--------- utils/galaxyify-playbook.py | 20 +++++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/utils/build-galaxy-release.sh b/utils/build-galaxy-release.sh index 3ace6376..0482ffd1 100644 --- a/utils/build-galaxy-release.sh +++ b/utils/build-galaxy-release.sh @@ -1,36 +1,40 @@ #!/bin/bash +namespace="freeipa" +collection="ansible_freeipa" +collection_prefix="${namespace}.${collection}" + galaxy_version=$(git describe --tags | sed -e "s/^v//") echo $galaxy_version | grep "-" -q || galaxy_version="${galaxy_version}" sed -i -e "s/version: .*/version: \"$galaxy_version\"/" galaxy.yml find . -name "*~" -exec rm {} \; -sed -i -e "s/ansible.module_utils.ansible_freeipa_module/ansible_collections.freeipa.ansible_freeipa.plugins.module_utils.ansible_freeipa_module/" plugins/modules/*.py +sed -i -e "s/ansible.module_utils.ansible_freeipa_module/ansible_collections.${collection_prefix}.plugins.module_utils.ansible_freeipa_module/" plugins/modules/*.py cd plugins/module_utils && { - ln -s ../../roles/ipa*/module_utils/*.py . + ln -s ../../roles/*/module_utils/*.py . cd ../.. } cd plugins/modules && { - sed -i -e "s/ansible.module_utils.ansible_ipa_/ansible_collections.freeipa.ansible_freeipa.plugins.module_utils.ansible_ipa_/" ../../roles/ipa*/library/*.py - ln -s ../../roles/ipa*/library/*.py . + sed -i -e "s/ansible.module_utils.ansible_ipa_/ansible_collections.${collection_prefix}.plugins.module_utils.ansible_ipa_/" ../../roles/*/library/*.py + ln -s ../../roles/*/library/*.py . cd ../.. } [ ! -x plugins/action_plugins ] && mkdir plugins/action_plugins cd plugins/action_plugins && { - ln -s ../../roles/ipa*/action_plugins/*.py . + ln -s ../../roles/*/action_plugins/*.py . cd ../.. } -for x in roles/ipa*/tasks/*.yml; do - python utils/galaxyify-playbook.py "$x" +for x in roles/*/tasks/*.yml; do + python utils/galaxyify-playbook.py "$x" "ipa" "$collection_prefix" done for x in $(find playbooks -name "*.yml" -print); do - python utils/galaxyify-playbook.py "$x" + python utils/galaxyify-playbook.py "$x" "ipa" "$collection_prefix" done #git diff @@ -43,4 +47,3 @@ rm plugins/modules/ipareplica_* rm plugins/modules/ipaclient_* rm plugins/action_plugins/ipaclient_* git reset --hard - diff --git a/utils/galaxyify-playbook.py b/utils/galaxyify-playbook.py index c2ad6209..3810ba3c 100644 --- a/utils/galaxyify-playbook.py +++ b/utils/galaxyify-playbook.py @@ -2,11 +2,14 @@ import sys import re -def galaxify_playbook(playbook_in): - p1 = re.compile('(ipa.*:)$') - p2 = re.compile('(.*:) (ipa.*)$') +def galaxify_playbook(playbook_in, project_prefix, collection_prefix): + p1 = re.compile('(%s.*:)$' % project_prefix) + p2 = re.compile('(.*:) (%s.*)$' % project_prefix) lines = [] + pattern1 = r'%s.\1' % collection_prefix + pattern2 = r'\1 %s.\2' % collection_prefix + with open(playbook_in) as in_f: changed = False changeable = False @@ -22,14 +25,13 @@ def galaxify_playbook(playbook_in): elif stripped.startswith("include_role:"): include_role = True elif include_role and stripped.startswith("name:"): - line = p2.sub(r'\1 freeipa.ansible_freeipa.\2', line) + line = p2.sub(pattern2, line) changed = True elif changeable and stripped.startswith("- role:"): - line = p2.sub(r'\1 freeipa.ansible_freeipa.\2', line) + line = p2.sub(pattern2, line) changed = True - elif changeable and not stripped.startswith( - "freeipa.ansible_freeipa."): - line = p1.sub(r'freeipa.ansible_freeipa.\1', line) + elif changeable and not stripped.startswith(collection_prefix): + line = p1.sub(pattern1, line) changed = True lines.append(line) @@ -40,4 +42,4 @@ def galaxify_playbook(playbook_in): out_f.write(line) -galaxify_playbook(sys.argv[1]) +galaxify_playbook(sys.argv[1], sys.argv[2], sys.argv[3]) -- GitLab