roles/openwrt-image: Add support for setting file modes
[noc.git] / ansible / roles / openwrt-image / tasks / prepare.yml
1 ---
2 - name: Create temporary build directory
3   command: mktemp --tmpdir -d openwrt-{{ inventory_hostname }}.XXXXXX
4   register: tmpdir
5
6 - set_fact:
7     openwrt_imgbuilder_dir:   "{{ tmpdir.stdout }}"
8     openwrt_imgbuilder_files: "{{ tmpdir.stdout }}/files"
9
10 - name: Create the directories for mixins
11   file:
12     path: "{{ item }}"
13     state: directory
14   with_items:
15     - "{{ openwrt_imgbuilder_files }}"
16     - "{{ openwrt_mixin | map('dirname') | map('regex_replace', '^', openwrt_imgbuilder_files) | unique | list }}"
17
18 - name: Copy mixins in place [1/2]
19   copy:
20     src: "{{ item.file }}"
21     dest: "{{ openwrt_imgbuilder_files }}/{{ item.key }}"
22     mode: "{{ item.mode | default(0644) }}"
23   with_dict: "{{ openwrt_mixin }}"
24   when: '"file" in item'
25   loop_control:
26     label: "{{ item.key }}"
27
28 - name: Copy mixins in place [2/2]
29   copy:
30     content: "{{ item.value }}"
31     dest: "{{ openwrt_imgbuilder_files }}/{{ item.key }}"
32     mode: "{{ item.mode | default(0644) }}"
33   with_dict: "{{ openwrt_mixin }}"
34   when: '"content" in item'
35   loop_control:
36     label: "{{ item.key }}"
37
38 ### TODO: this just hangs?
39 # - unarchive:
40 #     copy: False
41 #     src:  "{{ openwrt_download_dir }}/{{ openwrt_tarball_name }}"
42 #     dest: "{{ openwrt_imgbuilder_dir }}"
43
44 - name: Decompress the OpenWrt image builder
45   command: >-
46     tar -xf  "{{ openwrt_download_dir }}/{{ openwrt_tarball_name }}"
47     -C   "{{ openwrt_imgbuilder_dir     }}"