summaryrefslogtreecommitdiff
path: root/x11/kde-workspace-kde4/files/kdm4.in
diff options
context:
space:
mode:
Diffstat (limited to 'x11/kde-workspace-kde4/files/kdm4.in')
-rw-r--r--x11/kde-workspace-kde4/files/kdm4.in75
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"