diff --git a/roles/ensureparentdir/tasks/main.yml b/roles/ensureparentdir/tasks/main.yml index 25e8b98..8c261ab 100644 --- a/roles/ensureparentdir/tasks/main.yml +++ b/roles/ensureparentdir/tasks/main.yml @@ -1,5 +1,29 @@ - name: check if parent dir exists - debug: - msg: "{{ path }}" + register: stat_output + ansible.builtin.stat: + path: "{{ path | dirname }}" +- name: create dir if not exists + when: not stat_output.stat.exists + ansible.builtin.file: + path: "{{ path | dirname }}" + state: directory +- name: backup and create dir if not dir + when: stat_output.stat.exists and not stat_output.stat.isdir + block: + - name: "backup existing {{ path | dirname }}" + no_log: true + ansible.builtin.copy: + src: "{{ path | dirname }}" + dest: "{{ path | dirname }}.old" + - name: "delete existing {{ path | dirname }}" + no_log: true + ansible.builtin.file: + path: "{{ path | dirname }}" + state: absent + - name: "create {{ path | dirname }}" + no_log: true + ansible.builtin.file: + path: "{{ path | dirname }}" + state: directory