diff options
Diffstat (limited to 'x11/kde-workspace-kde4/files/kdm4.in')
-rw-r--r-- | x11/kde-workspace-kde4/files/kdm4.in | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/x11/kde-workspace-kde4/files/kdm4.in b/x11/kde-workspace-kde4/files/kdm4.in new file mode 100644 index 000000000000..278ff6223518 --- /dev/null +++ b/x11/kde-workspace-kde4/files/kdm4.in @@ -0,0 +1,75 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: kdm4 +# REQUIRE: LOGIN cleanvar moused syscons dbus hald +# KEYWORD: shutdown +# +# Add the following to /etc/rc.conf to start KDM at boot time: +# +# kdm4_enable="YES" +# +# # Optional variables +# kdm4_lang="en_US" # Default language. Note that language settings +# # in %%PREFIX%%/share/config/kdm/kdmrc has +# # higher priority. + +. /etc/rc.subr + +name=kdm4 +rcvar=kdm4_enable + +load_rc_config ${name} + +: ${kdm4_enable:="NO"} +: ${kdm4_lang="en_US"} # .UTF-8 suffix will be added later to comply with locale format + +GENKDMCONF=%%PREFIX%%/bin/genkdmconf +KDMCONFDIR=%%PREFIX%%/share/config/kdm + +command="%%PREFIX%%/bin/kdm" +pidfile="/var/run/kdm.pid" +start_cmd="kdm_start" + +kdm_genkdmconf() +{ + # Configure KDM if needed. + if [ ! -r ${KDMCONFDIR}/kdmrc ]; then + echo "Generating KDM configuration." + ${GENKDMCONF} --no-old --in ${KDMCONFDIR} + else + echo "Updating KDM configuration." + ${GENKDMCONF} --in ${KDMCONFDIR} + fi +} + +kdm_start() +{ + kdm_genkdmconf + + local iter + + ( iter=0 + while ! pgrep -f "^/usr/libexec/getty " > /dev/null 2>&1; do + if [ ${iter} -ge 600 ]; then + return 1 + fi + sleep 1 + iter=$((${iter} + 1)) + done + if checkyesno hald_enable; then + if [ ! -x %%LOCALBASE%%/sbin/hald ]; then + err 1 "%%LOCALBASE%%/sbin/hald is not installed" + fi + iter=0 + while [ ${iter} -lt 60 ] && + ! pgrep -f "^%%LOCALBASE%%/sbin/hald" > /dev/null 2>&1; do + sleep 1 + iter=$((${iter} + 1)) + done + fi + LANG=${kdm4_lang}.UTF-8 ${command} ${kdm4_flags} ) & +} + +run_rc_command "$1" |