diff --git a/defaults/main.yml b/defaults/main.yml index 392ec597eb71b267e1361f3e9eef26896e123995..a971ef2101a39c92a9cb35517f5cd29de8fcf60c 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1 +1,11 @@ files: {} + +files_default: + group: root + owner: root + mode: "0700" + state: touch + src: ~ + content: ~ + template: ~ + template_vars: {} diff --git a/tasks/file.yml b/tasks/file.yml index 8efd28ca8f2f40a012c935b64672fa7b474ada1f..fcc3991cca7fe2c3a0f8859f8e9ff5bc88441d5d 100644 --- a/tasks/file.yml +++ b/tasks/file.yml @@ -1,22 +1,10 @@ - set_fact: - defaultfile: - group: root - owner: root - mode: "0700" - state: touch - src: ~ - content: ~ - template: ~ - template_vars: {} + file: "{{ {}|combine(files_default, item.value|d({}), {'path': item.key} ) }}" -- set_fact: - file: "{{ defaultfile|combine(item.value|d({}), {'path': item.key} ) }}" - -- name: create file/folder +- name: "create file/folder (file module, {{ file.path }})" when: - not file.content - not file.template - - not file.src file: path: "{{ file.path }}" group: "{{ file.group }}" @@ -25,23 +13,14 @@ src: "{{ file.src }}" state: "{{ file.state }}" -- name: create file/folder +- name: "create file/folder (copy module, {{ file.path }})" when: - - file.content - - not file.src + - file.content or file.src + - file.state != 'link' copy: dest: "{{ file.path }}" group: "{{ file.group }}" owner: "{{ file.owner }}" mode: "{{ file.mode }}" content: "{{ file.content }}" - -- name: create file/folder - when: - - file.src - copy: - dest: "{{ file.path }}" - group: "{{ file.group }}" - owner: "{{ file.owner }}" - mode: "{{ file.mode }}" - src: "{{ file.src }}" \ No newline at end of file + src: "{{ file.src }}"