Blame utils/galaxyify-playbook.py

Packit 8cb997
import sys
Packit 8cb997
import re
Packit 8cb997
Packit 8cb997
Packit 8cb997
def galaxify_playbook(playbook_in):
Packit 8cb997
    p1 = re.compile('(ipa.*:)$')
Packit 8cb997
    p2 = re.compile('(.*:) (ipa.*)$')
Packit 8cb997
    lines = []
Packit 8cb997
Packit 8cb997
    with open(playbook_in) as in_f:
Packit 8cb997
        changed = False
Packit 8cb997
        changeable = False
Packit 8cb997
        include_role = False
Packit 8cb997
        for line in in_f:
Packit 8cb997
            stripped = line.strip()
Packit 8cb997
            if stripped.startswith("- name:") or \
Packit 8cb997
               stripped.startswith("- block:"):
Packit 8cb997
                changeable = True
Packit 8cb997
            elif stripped in ["set_fact:", "vars:"]:
Packit 8cb997
                changeable = False
Packit 8cb997
                include_role = False
Packit 8cb997
            elif stripped.startswith("include_role:"):
Packit 8cb997
                include_role = True
Packit 8cb997
            elif include_role and stripped.startswith("name:"):
Packit 8cb997
                line = p2.sub(r'\1 freeipa.ansible_freeipa.\2', line)
Packit 8cb997
                changed = True
Packit 8cb997
            elif changeable and stripped.startswith("- role:"):
Packit 8cb997
                line = p2.sub(r'\1 freeipa.ansible_freeipa.\2', line)
Packit 8cb997
                changed = True
Packit 8cb997
            elif changeable and not stripped.startswith(
Packit 8cb997
                    "freeipa.ansible_freeipa."):
Packit 8cb997
                line = p1.sub(r'freeipa.ansible_freeipa.\1', line)
Packit 8cb997
                changed = True
Packit 8cb997
Packit 8cb997
            lines.append(line)
Packit 8cb997
Packit 8cb997
    if changed:
Packit 8cb997
        with open(playbook_in, "w") as out_f:
Packit 8cb997
            for line in lines:
Packit 8cb997
                out_f.write(line)
Packit 8cb997
Packit 8cb997
Packit 8cb997
galaxify_playbook(sys.argv[1])