Merge from vendor branch TNF:
[pkgsrc.git] / security / dirmngr / files / dirmngr.sh
1 #!@RCD_SCRIPTS_SHELL@
2 #
3 # $NetBSD: dirmngr.sh,v 1.2 2007/11/07 12:43:22 shannonjr Exp $
4 #
5 # PROVIDE: dirmngr
6 # REQUIRE: DAEMON
7 #
8
9 if [ -f @PKG_SYSCONFDIR@/rc.subr ]; then
10         . @PKG_SYSCONFDIR@/rc.subr
11 fi
12
13 name="dirmngr"
14 rcvar="${name}"
15 dirmngr_user="@DIRMNGR_USER@"
16 dirmngr_group="@DIRMNGR_GROUP@"
17 dirmngr_flags="--daemon"
18 dirmngr_command="@PREFIX@/sbin/runDirmngr"
19 start_precmd="dirmngr_precmd"
20 start_cmd="dirmngr_start"
21 start_postcmd="dirmngr_postcmd"
22 stop_cmd="dirmngr_stop"
23 required_dirs="@PKG_SYSCONFDIR@/dirmngr"
24 required_files="@PKG_SYSCONFDIR@/dirmngr/ldapservers.conf"
25
26 dirmngr_precmd()
27 {
28         mkdir -p @VARBASE@/run/dirmngr
29         rm -f @VARBASE@/run/dirmngr/socket
30         chown @DIRMNGR_USER@  @VARBASE@/run/dirmngr
31         chgrp @DIRMNGR_GROUP@ @VARBASE@/run/dirmngr
32         chmod 1755 @VARBASE@/run/dirmngr
33         mkdir -p /tmp/dirmngr
34         chgrp @DIRMNGR_GROUP@ /tmp/dirmngr
35         chmod 755 /tmp/dirmngr
36 }
37
38 dirmngr_start()
39 {
40        for _f in $required_dirs; do
41                 if [ ! -d "${_f}/." ]; then
42                         warn "${_f} is not a directory."
43                         if [ -z $rc_force ]; then
44                                 return 1
45                         fi
46                 fi
47         done
48         for _f in $required_files; do
49                 if [ ! -r "${_f}" ]; then
50                         warn "${_f} is not readable."
51                         if [ -z $rc_force ]; then
52                                 return 1
53                         fi
54                 fi
55         done
56         eval `${dirmngr_command} ${rc_flags}`
57 }
58
59 dirmngr_postcmd()
60 {
61         echo ${DIRMNGR_INFO} >/tmp/dirmngr/dirmngr.info
62         chmod 644 /tmp/dirmngr/dirmngr.info
63         dirmngr_pid=`cut -f 2 -d ':' /tmp/dirmngr/dirmngr.info`
64 }
65
66 dirmngr_stop()
67 {
68         if [ -f /tmp/dirmngr/dirmngr.info ] ; then
69                 kill `cut -f 2 -d ':' /tmp/dirmngr/dirmngr.info`
70                 rm -f @VARBASE@/run/dirmngr/socket
71         fi
72 }
73
74 load_rc_config $name
75 run_rc_command "$1"