summaryrefslogtreecommitdiffstats
path: root/scripts/lib
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/lib')
-rw-r--r--scripts/lib/ptxd_make_xpkg_pkg.sh56
1 files changed, 56 insertions, 0 deletions
diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh b/scripts/lib/ptxd_make_xpkg_pkg.sh
new file mode 100644
index 0000000..f6ceb86
--- /dev/null
+++ b/scripts/lib/ptxd_make_xpkg_pkg.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+#
+# Copyright (C) 2010 by Michael Olbrich <m.olbrich@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# workaround for ptxdist-2018.10.0: override this function to the old
+# variant from ptxdist-2018.09.0, as it is currently broken.
+#
+
+export -fn ptxd_install_replace_figlet
+
+ptxd_install_replace_figlet() {
+ local dst="$1"
+ local placeholder="$2"
+ local value="$3"
+ local escapemode="$4"
+ local -a dirs ndirs pdirs sdirs ddirs
+ local mod_nfs mod_rw
+
+ ptxd_install_setup &&
+ echo "\
+install replace figlet:
+ file=${dst}
+ '${placeholder}' -> '\`figlet ${value}\`'
+" &&
+
+ ptxd_exist "${dirs[@]/%/${dst}}" &&
+ ptxd_figlet_helper() {
+ local value="$1"
+ local escapemode="$2"
+ figlet -d "${PTXDIST_SYSROOT_HOST}/share/figlet" -- "${value}" | \
+ case "$escapemode" in
+ # a lot of leaning toothpicks because we need to escape a literal
+ # '\' with '\\' on multiple levels:
+ # - one level for the string inside awk: \\\\\\\\\\\\\\\\ -> \\\\\\\\
+ # - one level for the shell string after sed -e: -> \\\\
+ # - one level for the s expression inside sed: -> \\
+ # - and finally, one level for /etc/issue: -> \
+ etcissue) awk '{ gsub("\\\\", "\\\\\\\\\\\\\\\\"); print }' ;;
+ *) ;;
+ esac | \
+ awk '{ if ($0 !~ "^ *$") printf("%s\\n", $0) }' # newlines for sed
+ } &&
+ figlet="$(ptxd_figlet_helper "$value" "$escapemode")" &&
+ sed -i -e "s#${placeholder}#${figlet}#g" "${dirs[@]/%/${dst}}" ||
+
+ ptxd_install_error "install_replace failed!"
+}
+export -f ptxd_install_replace_figlet
+