summaryrefslogtreecommitdiffstats
path: root/abs/core/plymouth/plymouth.functions
diff options
context:
space:
mode:
authorBritney Fransen <brfransen@gmail.com>2013-12-04 18:04:47 (GMT)
committerBritney Fransen <brfransen@gmail.com>2013-12-04 18:04:47 (GMT)
commit64a523b563e3cd7bb2a640c23267f2cf91d3bacc (patch)
tree437ed9a2d61f559260d72246a2127e50fb8c164b /abs/core/plymouth/plymouth.functions
parentd5370e5d6fe083e14866c5b5d1728fea4f9879bc (diff)
downloadlinhes_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.functions65
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: