diff --git a/modules.d/77dracut-systemd/dracut-cmdline-ask.sh b/modules.d/77dracut-systemd/dracut-cmdline-ask.sh index 29321a8c9c..0406975bdd 100755 --- a/modules.d/77dracut-systemd/dracut-cmdline-ask.sh +++ b/modules.d/77dracut-systemd/dracut-cmdline-ask.sh @@ -4,16 +4,29 @@ command -v getarg > /dev/null || . /lib/dracut-lib.sh getarg "rd.cmdline=ask" || exit 0 -sleep 0.5 -echo -sleep 0.5 -echo -sleep 0.5 -echo -echo -echo -echo -echo "Enter additional kernel command line parameter (end with ctrl-d or .)" +sleep 0.25 +echo "" +sleep 0.25 +echo " ======================================================================== " +sleep 0.25 +echo '(o< >o)' +sleep 0.25 +echo '//\ INPUT REQUIRED !!! /\\' +sleep 0.25 +echo 'V_/_ _\_V' +sleep 0.25 +echo " ======================================================================== " +sleep 0.25 +echo "" +sleep 0.25 +echo ' Enter additional kernel command line, or install program, parameters.' +sleep 0.25 +echo ' End with a period "." or Ctrl+d in a new line:' +sleep 0.25 + +# Ignore Ctrl+c (the d key is too close to c) +trap '' SIGINT + # In POSIX sh, read -p is undefined, but dash supports it # shellcheck disable=SC3045 while read -r -p "> " ${BASH:+-e} line || [ -n "$line" ]; do @@ -21,4 +34,7 @@ while read -r -p "> " ${BASH:+-e} line || [ -n "$line" ]; do [ -n "$line" ] && printf -- "%s\n" "$line" >> /etc/cmdline.d/99-cmdline-ask.conf done +# Restore Ctrl+c +trap 'exit 2;' SIGINT + exit 0 diff --git a/modules.d/80base/init.sh b/modules.d/80base/init.sh index 3664814933..bd66f040b4 100755 --- a/modules.d/80base/init.sh +++ b/modules.d/80base/init.sh @@ -110,13 +110,38 @@ fi source_conf /etc/conf.d if getarg "rd.cmdline=ask"; then - echo "Enter additional kernel command line parameter (end with ctrl-d or .)" + sleep 0.25 + echo "" + sleep 0.25 + echo " ======================================================================== " + sleep 0.25 + echo '(o< >o)' + sleep 0.25 + echo '//\ INPUT REQUIRED !!! /\\' + sleep 0.25 + echo 'V_/_ _\_V' + sleep 0.25 + echo " ======================================================================== " + sleep 0.25 + echo "" + sleep 0.25 + echo ' Enter additional kernel command line, or install program, parameters.' + sleep 0.25 + echo ' End with a period "." or Ctrl+d in a new line:' + sleep 0.25 + + # Ignore Ctrl+c (the d key is too close to c) + trap '' SIGINT + # In POSIX sh, read -p is undefined, but dash supports it # shellcheck disable=SC3045 while read -r -p "> " ${BASH:+-e} line || [ -n "$line" ]; do [ "$line" = "." ] && break echo "$line" >> /etc/cmdline.d/99-cmdline-ask.conf done + + # Restore Ctrl+c + trap 'exit 2;' SIGINT fi if ! getargbool 1 'rd.hostonly'; then