From 3aead122ee2535878fbe1ccba80d7e40501da7fa Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Wed, 19 Jun 2024 09:21:44 +0200 Subject: [PATCH] package/finit: backport batch mode for runparts Drop annoying escape characters from ixinit when logging to syslog. Signed-off-by: Joachim Wiberg --- board/common/rootfs/etc/finit.d/10-infix.conf | 2 +- ...s-add-b-batch-mode-for-syslog-output.patch | 64 +++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 package/finit/0012-runparts-add-b-batch-mode-for-syslog-output.patch diff --git a/board/common/rootfs/etc/finit.d/10-infix.conf b/board/common/rootfs/etc/finit.d/10-infix.conf index 024848e9..c7f0f632 100644 --- a/board/common/rootfs/etc/finit.d/10-infix.conf +++ b/board/common/rootfs/etc/finit.d/10-infix.conf @@ -1 +1 @@ -task name:ixinit log:tag:ixinit [S] /libexec/finit/runparts -p /libexec/infix/init.d -- Probing system +task name:ixinit log:tag:ixinit [S] /libexec/finit/runparts -bp /libexec/infix/init.d -- Probing system diff --git a/package/finit/0012-runparts-add-b-batch-mode-for-syslog-output.patch b/package/finit/0012-runparts-add-b-batch-mode-for-syslog-output.patch new file mode 100644 index 00000000..a8f4f48f --- /dev/null +++ b/package/finit/0012-runparts-add-b-batch-mode-for-syslog-output.patch @@ -0,0 +1,64 @@ +From ab62b5282b0461b14464a4a5de49f3b1fa0604fe Mon Sep 17 00:00:00 2001 +From: Joachim Wiberg +Date: Sat, 25 May 2024 19:33:21 +0200 +Subject: [PATCH 12/12] runparts: add -b (batch) mode for syslog output +Organization: Addiva Elektronik + +Signed-off-by: Joachim Wiberg +--- + src/runparts.c | 24 ++++++++++++++++++------ + 1 file changed, 18 insertions(+), 6 deletions(-) + +diff --git a/src/runparts.c b/src/runparts.c +index 5af2c2d..c4225ce 100644 +--- a/src/runparts.c ++++ b/src/runparts.c +@@ -26,18 +26,27 @@ + #else + #include + ++const char *active_msg = NULL; ++int interactive = 1; + int debug; + + static void print_desc(const char *prefix, const char *msg) + { +- fprintf(stderr, "\e[1m[\e[0m\e[1;33m ⋯ \e[0m\e[1m]\e[0m %s %s", prefix, msg); ++ if (interactive) ++ fprintf(stderr, "\e[1m[\e[0m\e[1;33m ⋯ \e[0m\e[1m]\e[0m %s %s", prefix, msg); ++ else ++ fprintf(stderr, "%s %s ...\n", prefix, msg); ++ active_msg = msg; + } + static void print_result(int rc) + { +- if (rc) +- fputs("\r\e[1m[\e[0m\e[1;31mFAIL\e[0m\e[1m]\e[0m\n", stderr); +- else +- fputs("\r\e[1m[\e[0m\e[1;32m OK \e[0m\e[1m]\e[0m\n", stderr); ++ if (interactive) { ++ if (rc) ++ fputs("\r\e[1m[\e[0m\e[1;31mFAIL\e[0m\e[1m]\e[0m\n", stderr); ++ else ++ fputs("\r\e[1m[\e[0m\e[1;32m OK \e[0m\e[1m]\e[0m\n", stderr); ++ } else ++ fprintf(stderr, "[%s] %s\n", rc ? "FAIL" : " OK ", active_msg ?: ""); + } + + void sig_unblock(void) +@@ -193,8 +202,11 @@ int main(int argc, char *argv[]) + int rc, c, progress = 0, sysv = 0; + char *dir; + +- while ((c = getopt(argc, argv, "dh?ps")) != EOF) { ++ while ((c = getopt(argc, argv, "bdh?ps")) != EOF) { + switch(c) { ++ case 'b': /* batch mode */ ++ interactive = 0; ++ break; + case 'd': + debug = 1; + break; +-- +2.34.1 +