Rename openwrt-image role to openwrt/image
[noc.git] / ansible / roles / openwrt / openwrt-image / tasks / main.yml
diff --git a/ansible/roles/openwrt/openwrt-image/tasks/main.yml b/ansible/roles/openwrt/openwrt-image/tasks/main.yml
new file mode 100644 (file)
index 0000000..1781d9e
--- /dev/null
@@ -0,0 +1,38 @@
+---
+- include: fetch.yml
+  run_once: true
+  when: openwrt_imgbuilder_tarball is not defined
+
+- block:
+    - include: prepare.yml
+
+    - name: Create the output directory for built images
+      file:
+        path: "{{ openwrt_output_dir }}"
+        state: directory
+
+    - set_fact:
+        openwrt_packages: >-
+          {{ openwrt_packages_remove | map('regex_replace', '^', '-') | join(' ') }}
+          {{ openwrt_packages_add   | join(' ') }}
+          {{ openwrt_packages_extra | join(' ') }}
+
+    - name: Build the OpenWrt image
+      command: >-
+        make -C {{ openwrt_imgbuilder_dir }}/{{ openwrt_tarball_basename }} image
+          {% if openwrt_profile is defined %}PROFILE="{{ openwrt_profile }}" {% endif %}
+          FILES="{{ openwrt_imgbuilder_files }}"
+          PACKAGES="{{ openwrt_packages }}"
+          {% if openwrt_extra_name is defined %} EXTRA_IMAGE_NAME="{{ openwrt_extra_name }}" {% endif %}
+
+    - name: Copy newly built OpenWrt image
+      with_items: "{{ openwrt_output_image_suffixes }}"
+      copy:
+        src: "{{ openwrt_imgbuilder_dir }}/{{ openwrt_tarball_basename }}/bin/targets/{{ openwrt_arch }}/{{ openwrt_target }}/{{ openwrt_output_image_name_base }}-{{ item }}"
+        dest: "{{ openwrt_output_dir }}"
+
+  always:
+    - name: Delete the temporary build directory
+      file:
+        path: "{{ openwrt_imgbuilder_dir }}"
+        state: absent