diff options
| author | Manuel Traut <manut@mecka.net> | 2011-04-29 09:09:27 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2011-04-29 09:09:27 +0200 |
| commit | 5238ad5a0c4a9e1c8cd036f5de4055e39bd71297 (patch) | |
| tree | 4407c087b9fb5432b1dc11e70b52dacfa0b99feb /beagle/debian-rfs/lib/init/splash-functions-base | |
| parent | 60ead65c41afba7e6aa4bbcf507a1d52f7a8fe9f (diff) | |
added debootstrap stuff
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'beagle/debian-rfs/lib/init/splash-functions-base')
| -rw-r--r-- | beagle/debian-rfs/lib/init/splash-functions-base | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/beagle/debian-rfs/lib/init/splash-functions-base b/beagle/debian-rfs/lib/init/splash-functions-base new file mode 100644 index 0000000..8319dab --- /dev/null +++ b/beagle/debian-rfs/lib/init/splash-functions-base @@ -0,0 +1,93 @@ +# This script contains hooks to allow init scripts to control +# a splash program during boot and shutdown. +# +# To override these, provide a /lib/init/splash-functions scripts +# with new functions (it is sourced at the end of this file) +# +# Note that scripts have a number of constraints: +# 1) Should avoid using any binaries not found in the initramfs so that +# the same hooks can be used there. +# 2) This also means that bashisms can't be used. +# 3) Scripts must work when running under "set -e". +# 4) "local" should be used to avoid overwriting global variables. + + +# Detects whether a splash is running +splash_running() { return 1; } + +# Tells the splash to quit +splash_stop() { return 0; } + +# Tells the splash to start if not already running +splash_start() { return 1; } + +# Tells the splash the current boot/shutdown progress +# $1 contains the progress as a percentage value between -100 and 100 +# Positive values indicate boot progress +# Negative values indicate shutdown progress +splash_progress() +{ + local progress tmp + progress="$1" + + splash_running || return 0 + + # Sanity check step 1 - must match ^-[0-9]*$ + tmp="$progress" + + # Strip trailing numbers + while [ "${tmp%[0-9]}" != "$tmp" ]; do + tmp="${tmp%[0-9]}" + done + + # Now "-" or no characters should remain + if [ -n "$tmp" ] && [ "$tmp" != "-" ]; then + return 1 + fi + + # Sanity check step 2 - check for values >= -100 and <= 100 + if [ "$progress" != "${progress#-}" ]; then + # Negative value + if [ "$progress" -lt -100 ]; then + return 1 + fi + else + # Positive value + if [ "$progress" -gt 100 ]; then + return 1 + fi + fi + + # Sanity checks passed + custom_splash_progress "$progress" || return 1 + return 0 +} + +# Customizations should replace this function instead of splash_progress above +custom_splash_progress() { return 0; } + + +# Tells the splash that a task which may take an unknown amount of +# time has started (such as a fsck). This is useful to make sure the +# splash doesn't time out and to give visual feedback to the user. +splash_start_indefinite() { return 0; } + +# Tells the splash that an indefinite task is done +splash_stop_indefinite() { return 0; } + +# Gets user input from a splash +# $1 contains the text for the user prompt +# $2 describes the type of input: +# regular = regular input, e.g. a user name +# password = input which should not be echoed to screen, e.g. a password +# enter = A "press enter to continue" type of prompt +# +# Returns 1 if no user input is possible +# Should be called with an alternative non-splash input fallback: +# INPUT="$(splash_user_input "Enter password:" password)" || \ +# INPUT="$(manual_method)" +splash_user_input() { return 1; } + +# Allow these functions to be overridden with custom scripts. This is +# the official API hook. +if [ -e /lib/init/splash-functions ] ; then . /lib/init/splash-functions ; fi |
