From 5a884d7cf51c20d79f9be88b93519e65b21cd41b Mon Sep 17 00:00:00 2001 From: Oliver Tappe Date: Fri, 11 Jan 2008 16:03:15 +0000 Subject: * added hook mechanism to initramfs-init which can be used by plugins to trigger execution of their own script at a certain point in the initramfs-init execution path. This is not active yet * added basic implementation outline for Theme (a.k.a splash) plugin - unable to test anything, though, as VMware does not seem to provide a VESA framebuffer, so splashy won't run git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1466 95ad53e4-c205-0410-b2fa-d234c58c8868 --- os-plugins/plugins/Theme/OpenSLX/OSPlugin/Theme.pm | 84 ++++++++++++++++++++++ os-plugins/plugins/Theme/XX_Theme.sh | 18 +++++ .../Theme/init-hooks/05-have-kernelvars/Theme.sh | 10 +++ .../Theme/init-hooks/15-have-ip-config/Theme.sh | 1 + .../Theme/init-hooks/25-have-network-root/Theme.sh | 1 + .../Theme/init-hooks/40-started-hw-config/Theme.sh | 1 + .../Theme/init-hooks/50-have-layered-fs/Theme.sh | 1 + .../Theme/init-hooks/60-have-servconfig/Theme.sh | 1 + .../Theme/init-hooks/70-before-plugins/Theme.sh | 1 + .../Theme/init-hooks/80-after-plugins/Theme.sh | 1 + .../Theme/init-hooks/99-handing-over/Theme.sh | 1 + .../plugins/VMware/OpenSLX/OSPlugin/VMware.pm | 2 +- 12 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 os-plugins/plugins/Theme/OpenSLX/OSPlugin/Theme.pm create mode 100644 os-plugins/plugins/Theme/XX_Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/05-have-kernelvars/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/15-have-ip-config/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/25-have-network-root/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/40-started-hw-config/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/50-have-layered-fs/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/60-have-servconfig/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/70-before-plugins/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/80-after-plugins/Theme.sh create mode 100644 os-plugins/plugins/Theme/init-hooks/99-handing-over/Theme.sh (limited to 'os-plugins') diff --git a/os-plugins/plugins/Theme/OpenSLX/OSPlugin/Theme.pm b/os-plugins/plugins/Theme/OpenSLX/OSPlugin/Theme.pm new file mode 100644 index 00000000..5975fa3f --- /dev/null +++ b/os-plugins/plugins/Theme/OpenSLX/OSPlugin/Theme.pm @@ -0,0 +1,84 @@ +# Copyright (c) 2007 - OpenSLX GmbH +# +# This program is free software distributed under the GPL version 2. +# See http://openslx.org/COPYING +# +# If you have any feedback please consult http://openslx.org/feedback and +# send your suggestions, praise, or complaints to feedback@openslx.org +# +# General information about OpenSLX can be found at http://openslx.org/ +# ----------------------------------------------------------------------------- +# Theme.pm +# - implementation of the 'Theme' plugin, which applies theming to the +# following places: +# + bootsplash (via splashy) +# + displaymanager (gdm, kdm, ...) +# + desktop (to be done) +# ----------------------------------------------------------------------------- +package OpenSLX::OSPlugin::Theme; + +use strict; +use warnings; + +use base qw(OpenSLX::OSPlugin::Base); + +use OpenSLX::Basics; +use OpenSLX::Utils; + +sub new +{ + my $class = shift; + + my $self = {}; + + return bless $self, $class; +} + +sub getInfo +{ + my $self = shift; + + return { + description => unshiftHereDoc(<<' End-of-Here'), + applies a graphical theme to the bootsplash and the displaymanager + End-of-Here + mustRunAfter => [], + }; +} + +sub getAttrInfo +{ # returns a hash-ref with information about all attributes supported + # by this specific plugin + my $self = shift; + + # This default configuration will be added as attributes to the default + # system, such that it can be overruled for any specific system by means + # of slxconfig. + return { + # attribute 'active' is mandatory for all plugins + 'theme::active' => { + applies_to_systems => 1, + applies_to_clients => 0, + description => unshiftHereDoc(<<' End-of-Here'), + should the 'Theme'-plugin be executed during boot? + End-of-Here + content_regex => qr{^(0|1)$}, + content_descr => '1 means active - 0 means inactive', + default => '1', + }, + # attribute 'precedence' is mandatory for all plugins + 'theme::precedence' => { + applies_to_systems => 1, + applies_to_clients => 0, + description => unshiftHereDoc(<<' End-of-Here'), + the execution precedence of the 'Theme' plugin + End-of-Here + content_regex => qr{^\d\d$}, + content_descr => 'allowed range is from 01-99', + default => 30, + }, + + }; +} + +1; diff --git a/os-plugins/plugins/Theme/XX_Theme.sh b/os-plugins/plugins/Theme/XX_Theme.sh new file mode 100644 index 00000000..81d2a729 --- /dev/null +++ b/os-plugins/plugins/Theme/XX_Theme.sh @@ -0,0 +1,18 @@ +#! /bin/sh +# +# stage3 part of 'Theme' plugin - the runlevel script +# +if ! [ -e /initramfs/plugin-conf/Theme.conf ]; then + exit 1 +fi +. /initramfs/plugin-conf/Theme.conf + +if ! [ -n $active ]; then + exit 0 +fi + +echo "executing the 'Theme' os-plugin ..."; + +# nothing to do here, really + +echo "done with 'Theme' os-plugin ..."; diff --git a/os-plugins/plugins/Theme/init-hooks/05-have-kernelvars/Theme.sh b/os-plugins/plugins/Theme/init-hooks/05-have-kernelvars/Theme.sh new file mode 100644 index 00000000..c2d4551a --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/05-have-kernelvars/Theme.sh @@ -0,0 +1,10 @@ +# splashy stuff seems to depend on /proc/fb with VESA!? +# only activate with kernel option quiet +if grep -E "(VESA|VGA)" /proc/fb > /dev/null 2>&1 \ + && grep -qi " quiet " /proc/cmdline > /dev/null 2>&1; then + export Theme_nosplash=0 +else + export Theme_nosplash=1 +fi + +[ ${Theme_nosplash} = 0 ] && /bin/splashy boot 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/15-have-ip-config/Theme.sh b/os-plugins/plugins/Theme/init-hooks/15-have-ip-config/Theme.sh new file mode 100644 index 00000000..6a3b0737 --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/15-have-ip-config/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 15" 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/25-have-network-root/Theme.sh b/os-plugins/plugins/Theme/init-hooks/25-have-network-root/Theme.sh new file mode 100644 index 00000000..043d58d0 --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/25-have-network-root/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 25" 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/40-started-hw-config/Theme.sh b/os-plugins/plugins/Theme/init-hooks/40-started-hw-config/Theme.sh new file mode 100644 index 00000000..7b56298b --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/40-started-hw-config/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 40" 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/50-have-layered-fs/Theme.sh b/os-plugins/plugins/Theme/init-hooks/50-have-layered-fs/Theme.sh new file mode 100644 index 00000000..77505155 --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/50-have-layered-fs/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 50" 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/60-have-servconfig/Theme.sh b/os-plugins/plugins/Theme/init-hooks/60-have-servconfig/Theme.sh new file mode 100644 index 00000000..a305e1b9 --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/60-have-servconfig/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 60" 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/70-before-plugins/Theme.sh b/os-plugins/plugins/Theme/init-hooks/70-before-plugins/Theme.sh new file mode 100644 index 00000000..f96bf7da --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/70-before-plugins/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 70" 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/80-after-plugins/Theme.sh b/os-plugins/plugins/Theme/init-hooks/80-after-plugins/Theme.sh new file mode 100644 index 00000000..4a749752 --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/80-after-plugins/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 80" 2>/dev/null diff --git a/os-plugins/plugins/Theme/init-hooks/99-handing-over/Theme.sh b/os-plugins/plugins/Theme/init-hooks/99-handing-over/Theme.sh new file mode 100644 index 00000000..92bd6572 --- /dev/null +++ b/os-plugins/plugins/Theme/init-hooks/99-handing-over/Theme.sh @@ -0,0 +1 @@ +[ ${Theme_nosplash} = 0 ] && /bin/splashy_update "progress 100" 2>/dev/null diff --git a/os-plugins/plugins/VMware/OpenSLX/OSPlugin/VMware.pm b/os-plugins/plugins/VMware/OpenSLX/OSPlugin/VMware.pm index 2dc141cc..c12750e7 100644 --- a/os-plugins/plugins/VMware/OpenSLX/OSPlugin/VMware.pm +++ b/os-plugins/plugins/VMware/OpenSLX/OSPlugin/VMware.pm @@ -71,7 +71,7 @@ sub getAttrInfo End-of-Here content_regex => qr{^\d\d$}, content_descr => 'allowed range is from 01-99', - default => 50, + default => 70, }, }; -- cgit v1.2.3-55-g7522