]> code.ossystems Code Review - openembedded-core.git/commitdiff
initramfs-framework: Add exec module
authorOtavio Salvador <otavio@ossystems.com.br>
Fri, 1 Dec 2017 13:05:32 +0000 (11:05 -0200)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 10 Dec 2017 22:41:41 +0000 (22:41 +0000)
This new module allow for easy execution of external scripts or
applications. It runs anything found in /exec.d directory in order and
in case of no scripts to be available, it opens a shell.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/recipes-core/initrdscripts/initramfs-framework/exec [new file with mode: 0644]
meta/recipes-core/initrdscripts/initramfs-framework_1.0.bb

diff --git a/meta/recipes-core/initrdscripts/initramfs-framework/exec b/meta/recipes-core/initrdscripts/initramfs-framework/exec
new file mode 100644 (file)
index 0000000..a8e2432
--- /dev/null
@@ -0,0 +1,29 @@
+#!/bin/sh
+# Copyright (C) 2017 O.S. Systems Software LTDA.
+# Licensed on MIT
+
+EXEC_DIR=/exec.d  # place to look for modules
+
+exec_enabled() {
+       return 0
+}
+
+exec_run() {
+       if [ ! -d $EXEC_DIR ]; then
+               msg "No contents to exec in $EXEC_DIR. Starting shell ..."
+               sh
+       fi
+
+       # Load and run modules
+       for m in $EXEC_DIR/*; do
+               # Skip backup files
+               if [ "`echo $m | sed -e 's/\~$//'`" != "$m" ]; then
+                       continue
+               fi
+
+               debug "Starting $m"
+
+               # process module
+               ./$m
+       done
+}
index 2afc37ee75f0801fbc1d2eb7c4821824c7e444ef..75d965f069129f2d90224276f52427d603393c32 100644 (file)
@@ -8,6 +8,7 @@ PR = "r4"
 inherit allarch
 
 SRC_URI = "file://init \
+           file://exec \
            file://rootfs \
            file://finish \
            file://mdev \
@@ -26,6 +27,9 @@ do_install() {
     install -m 0755 ${WORKDIR}/rootfs ${D}/init.d/90-rootfs
     install -m 0755 ${WORKDIR}/finish ${D}/init.d/99-finish
 
+       # exec
+    install -m 0755 ${WORKDIR}/exec ${D}/init.d/89-exec
+
     # mdev
     install -m 0755 ${WORKDIR}/mdev ${D}/init.d/01-mdev
 
@@ -45,6 +49,7 @@ do_install() {
 }
 
 PACKAGES = "${PN}-base \
+            initramfs-module-exec \
             initramfs-module-mdev \
             initramfs-module-udev \
             initramfs-module-e2fs \
@@ -62,6 +67,10 @@ FILES_${PN}-base = "/init /init.d/99-finish /dev"
 # and mounts the rootfs. Then 90-rootfs will proceed immediately.
 RRECOMMENDS_${PN}-base += "initramfs-module-rootfs"
 
+SUMMARY_initramfs-module-exec = "initramfs support for easy execution of applications"
+RDEPENDS_initramfs-module-exec = "${PN}-base"
+FILES_initramfs-module-exec = "/init.d/89-exec"
+
 SUMMARY_initramfs-module-mdev = "initramfs support for mdev"
 RDEPENDS_initramfs-module-mdev = "${PN}-base busybox-mdev"
 FILES_initramfs-module-mdev = "/init.d/01-mdev"