diff options
author | Britney Fransen <brfransen@gmail.com> | 2013-12-04 18:04:47 (GMT) |
---|---|---|
committer | Britney Fransen <brfransen@gmail.com> | 2013-12-04 18:04:47 (GMT) |
commit | 64a523b563e3cd7bb2a640c23267f2cf91d3bacc (patch) | |
tree | 437ed9a2d61f559260d72246a2127e50fb8c164b /abs/core/plymouth/plymouth.functions | |
parent | d5370e5d6fe083e14866c5b5d1728fea4f9879bc (diff) | |
download | linhes_pkgbuild-64a523b563e3cd7bb2a640c23267f2cf91d3bacc.zip linhes_pkgbuild-64a523b563e3cd7bb2a640c23267f2cf91d3bacc.tar.gz linhes_pkgbuild-64a523b563e3cd7bb2a640c23267f2cf91d3bacc.tar.bz2 |
plymouth, plymouth-theme-linhes: update and kill some bugs
LinHES-config: change splash detection
Diffstat (limited to 'abs/core/plymouth/plymouth.functions')
-rw-r--r-- | abs/core/plymouth/plymouth.functions | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/abs/core/plymouth/plymouth.functions b/abs/core/plymouth/plymouth.functions new file mode 100644 index 0000000..b866643 --- /dev/null +++ b/abs/core/plymouth/plymouth.functions @@ -0,0 +1,65 @@ +if [[ -x /usr/bin/plymouth && -x /usr/sbin/plymouthd ]]; then + + ply_client() { /usr/bin/plymouth --ping && /usr/bin/plymouth "$@"; } + ply_daemon() { /usr/sbin/plymouthd "$@"; } + + # save a function under a new name + save_function() { + local ORIG=$(declare -f $1) + eval "$2${ORIG#$1}" + } + + save_function stat_busy std_stat_busy + save_function stat_fail std_stat_fail + + # overwrite status functions + stat_busy() { + ply_client --update="$1" + ply_client message --text="$1" + std_stat_busy "$@" + } + + stat_fail() { + ply_client --quit + std_stat_fail "$@" + } + + # update after local filesystems are mounted + ply_sysinit_postmount() { ply_client --sysinit; } + add_hook sysinit_postmount ply_sysinit_postmount + + # stop plymouth after rc.multi + ply_quit_boot() { + ply_client quit --retain-splash + } + add_hook multi_end ply_quit_boot + + # stop plymouth before shutdown + ply_quit_shutdown() { + ply_quit_boot + [[ $(ps h $(cat /tmp/plymouthd)) ]] && kill -9 $(cat /tmp/plymouthd) + } + add_hook shutdown_poweroff ply_quit_shutdown + + # start plymouth at the beginning of rc.shutdown + ply_shutdown_start(){ + XPID=`pidof X` + if [ "$XPID" ]; then + if [ "`runlevel | cut -c 3`" != '5' ]; then + local DM + for DM in slim gdm kdm xdm entrance; do + ck_daemon "$DM" || stop_daemon "$DM" + done + fi + kill -9 $XPID &> /dev/null + fi + ply_daemon --mode=shutdown --pid-file=/tmp/plymouthd + ply_client --show-splash + + # don't get killed by kill_all + add_omit_pids `cat /tmp/plymouthd` + } + add_hook shutdown_start ply_shutdown_start + +fi +# vim: set ts=2 sw=2 ft=sh noet: |