#!/bin/sh # $FreeBSD: head/x11/kde4-workspace/files/kdm4.in 340872 2014-01-24 00:14:07Z mat $ # # 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"