Tuer firmware (WIP)
[noc.git] / ansible / roles / openwrt-image / tasks / main.yml
1 - include: 00-fetch.yml
2   when: openwrt_imgbuilder_tarball is not defined
3
4 - name: Create temporary build directory
5   command: mktemp --tmpdir -d openwrt-{{ ansible_hostname }}.XXXXXX
6   register: tmpdir
7
8 - set_fact:
9     openwrt_imgbuilder_dir:   "{{ tmpdir.stdout }}"
10     openwrt_imgbuilder_files: "{{ tmpdir.stdout }}/files"
11
12 - name: Create the directories for mixins
13   file:
14     path: "{{ item }}"
15     state: directory
16   with_items:
17     - "{{ openwrt_imgbuilder_files }}"
18     - "{{ openwrt_mixin.files | map('dirname') | map('regex_replace', '^', openwrt_imgbuilder_files) | unique | list }}"
19     - "{{ openwrt_mixin.content | map('dirname') | map('regex_replace', '^', openwrt_imgbuilder_files) | unique | list }}"
20
21 - name: Copy mixins in place [1/2]
22   copy:
23     src: "{{ item.value }}"
24     dest: "{{ openwrt_imgbuilder_files }}/{{ item.key }}"
25   with_dict: "{{ openwrt_mixin.files }}"
26   loop_control:
27     label: "{{ item.key }}"
28
29 - name: Copy mixins in place [2/2]
30   copy:
31     content: "{{ item.value }}"
32     dest: "{{ openwrt_imgbuilder_files }}/{{ item.key }}"
33   with_dict: "{{ openwrt_mixin.content }}"
34   loop_control:
35     label: "{{ item.key }}"
36
37 - block:
38 #    - unarchive:
39 #        copy: False
40 #        src:  "{{ download_dir }}/{{ openwrt_tarball_name }}"
41 #        dest: "{{ openwrt_imgbuilder_dir }}"
42
43     - name: Decompress the OpenWrt image builder
44       command: >-
45         tar -xf  "{{ download_dir }}/{{ openwrt_tarball_name }}"
46             -C   "{{ openwrt_imgbuilder_dir     }}"
47
48 #    - include: 02-prepare.yml
49
50     - name: Create the output directory for built images
51       file:
52         path: "{{ openwrt_output_dir }}"
53         state: directory
54
55     - set_fact:
56         openwrt_packages: >-
57           {{ openwrt_packages_remove | map('regex_replace', '^', '-') | join(' ') }}
58           {{ openwrt_packages_add   | join(' ') }}
59           {{ openwrt_packages_extra | join(' ') }}
60
61     - name: Build the OpenWrt image
62       command: >-
63         make -C {{ openwrt_imgbuilder_dir }}/{{ openwrt_tarball_basename }} image
64           FILES="{{ openwrt_imgbuilder_files }}"
65           PACKAGES="{{ openwrt_packages }}"
66           BIN_DIR="{{ openwrt_output_dir }}"
67           {% if openwrt_extra_name is defined %} EXTRA_IMAGE_NAME="{{ openwrt_extra_name }}" {% endif %}
68
69
70 #  always:
71 #    - name: Delete the temporary build directory
72 #      file:
73 #        path: "{{ openwrt_imgbuilder_dir }}"
74 #        state: absent