[RFC PATCH 4/9] utils: Add pb-exec wrapper

Samuel Mendoza-Jonas sam at mendozajonas.com
Wed Feb 15 15:35:36 AEDT 2017


Add a small wrapper script for the Petitboot UI to call interactable
programs with. The wrapper calls the program and waits for user input
before returning to the Petitboot UI.

Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 configure.ac        |  1 +
 lib/system/system.c |  1 +
 lib/system/system.h |  1 +
 utils/Makefile.am   |  2 +-
 utils/pb-exec       | 15 +++++++++++++++
 5 files changed, 19 insertions(+), 1 deletion(-)
 create mode 100755 utils/pb-exec

diff --git a/configure.ac b/configure.ac
index 408bd90..dcfdb04 100644
--- a/configure.ac
+++ b/configure.ac
@@ -333,6 +333,7 @@ DEFINE_HOST_PROG(WGET, wget, [/usr/bin/wget])
 DEFINE_HOST_PROG(IP, ip, [/sbin/ip])
 DEFINE_HOST_PROG(UDHCPC, udhcpc, [/sbin/udhcpc])
 DEFINE_HOST_PROG(PB_PLUGIN, pb-plugin, [/usr/sbin/pb-plugin])
+DEFINE_HOST_PROG(PB_EXEC, pb-exec, [/usr/sbin/pb-exec])
 
 AC_ARG_WITH(
     [tftp],
diff --git a/lib/system/system.c b/lib/system/system.c
index b04ebd4..f702bf8 100644
--- a/lib/system/system.c
+++ b/lib/system/system.c
@@ -29,6 +29,7 @@ const struct pb_system_apps pb_system_apps = {
 	.ip		= HOST_PROG_IP,
 	.udhcpc		= HOST_PROG_UDHCPC,
 	.pb_plugin	= HOST_PROG_PB_PLUGIN,
+	.pb_exec	= HOST_PROG_PB_EXEC,
 };
 
 #ifndef TFTP_TYPE
diff --git a/lib/system/system.h b/lib/system/system.h
index e50302a..1143e36 100644
--- a/lib/system/system.h
+++ b/lib/system/system.h
@@ -14,6 +14,7 @@ struct pb_system_apps {
 	const char *ip;
 	const char *udhcpc;
 	const char *pb_plugin;
+	const char *pb_exec;
 };
 
 extern const struct pb_system_apps pb_system_apps;
diff --git a/utils/Makefile.am b/utils/Makefile.am
index 6c708eb..3ef3fe8 100644
--- a/utils/Makefile.am
+++ b/utils/Makefile.am
@@ -12,7 +12,7 @@
 #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 #
 
-dist_sbin_SCRIPTS += utils/pb-udhcpc utils/pb-plugin utils/pb-sos
+dist_sbin_SCRIPTS += utils/pb-udhcpc utils/pb-plugin utils/pb-sos utils/pb-exec
 dist_pkglibexec_SCRIPTS = utils/pb-console
 sbin_PROGRAMS += utils/pb-event utils/pb-config
 
diff --git a/utils/pb-exec b/utils/pb-exec
new file mode 100755
index 0000000..f770afc
--- /dev/null
+++ b/utils/pb-exec
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# Run a program specified by Petitboot. Assume for now this is a single program
+# with no arguments.
+$1
+
+# Wait for the user to exit back to Petitboot.
+while :; do
+	read -r -p "Press ENTER to return to Petitboot" key
+
+	if [ "$key" == "" ]; then
+		echo "Returning to Petitboot.."
+		exit 0
+	fi
+done
-- 
2.11.1



More information about the Petitboot mailing list