]> git.meshlink.io Git - catta/blob - initscript/debian/avahi-dnsconfd.in
ac3480451faf435f73d4b79c05d65a809f2d43af
[catta] / initscript / debian / avahi-dnsconfd.in
1 #!/bin/sh
2
3 # $Id$
4
5 # This file is part of avahi.
6 #
7 # avahi is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU Lesser General Public License as
9 # published by the Free Software Foundation; either version 2 of the
10 # License, or (at your option) any later version.
11 #
12 # avahi is distributed in the hope that it will be useful, but WITHOUT
13 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 # License for more details.
16 #
17 # You should have received a copy of the GNU Lesser General Public
18 # License along with avahi; if not, write to the Free Software
19 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 # USA.
21
22 #
23 # avahi-dnsconfd     avahi dns configuration daemon
24 #                               Daemon for ZeroConf
25 #
26 # Authors:      <sebastien.estienne@gmail.com>
27 #
28
29 if [ -f /lib/lsb/init-functions ]
30 then
31     . /lib/lsb/init-functions
32 else
33     # int log_begin_message (char *message)
34     log_begin_msg () {
35         if [ -z "$1" ]; then
36             return 1
37         fi
38         echo " * $@"
39     }
40
41     # int log_end_message (int exitstatus)
42     log_end_msg () {
43         
44     # If no arguments were passed, return
45         [ -z "$1" ] && return 1
46         
47     # Only do the fancy stuff if we have an appropriate terminal
48     # and if /usr is already mounted
49         TPUT=/usr/bin/tput
50         EXPR=/usr/bin/expr
51         if [ -x $TPUT ] && [ -x $EXPR ] && $TPUT hpa 60 >/dev/null 2>&1; then
52             COLS=`$TPUT cols`
53             if [ -n "$COLS" ]; then
54                 COL=`$EXPR $COLS - 7`
55             else
56                 COL=73
57             fi
58             UP=`$TPUT cuu1`
59             END=`$TPUT hpa $COL`
60             START=`$TPUT hpa 0`
61             RED=`$TPUT setaf 1`
62             NORMAL=`$TPUT op`
63             if [ $1 -eq 0 ]; then
64                 echo "$UP$END[ ok ]"
65             else
66                 echo -e "$UP$START $RED*$NORMAL$END[${RED}fail${NORMAL}]"
67             fi
68         else
69             if [ $1 -eq 0 ]; then
70                 echo "   ...done."
71             else
72                 echo "   ...fail!"
73             fi
74         fi
75         return $1
76     }
77     
78     log_warning_msg () {
79         if log_use_fancy_output; then
80             YELLOW=`$TPUT setaf 3`
81             NORMAL=`$TPUT op`
82             echo "$YELLOW*$NORMAL $@"
83         else
84             echo "$@"
85         fi
86     }
87
88 fi
89
90 #set -e
91
92 PATH=/sbin:/bin:/usr/sbin:/usr/bin
93 DESC="Avahi Unicast DNS Configuration Daemon"
94 NAME="avahi-dnsconfd"
95 DAEMON="@sbindir@/$NAME"
96 SCRIPTNAME=/etc/init.d/$NAME
97
98 # Gracefully exit if the package has been removed.
99 test -x $DAEMON || exit 0
100
101 # don't start if /etc/default/avahi-dnsconfd says so.
102 AVAHI_DNSCONFD_START=1
103 test -f /etc/default/avahi-dnsconfd && . /etc/default/avahi-dnsconfd
104
105 if [ "$AVAHI_DNSCONFD_START" != "1" -a "$1" != "stop" ]; then
106     log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME"
107     exit 0
108 fi
109
110 #
111 #       Function that starts the daemon/service.
112 #
113 d_start() {
114     $DAEMON -c
115     [ $? = 0 ] && exit 0
116
117     if [ -s /etc/localtime ]; then
118         if [ ! -d /etc/avahi/etc ]; then
119             mkdir -p @sysconfdir@/avahi/etc >/dev/null 2>&1
120         fi
121         cp -fp /etc/localtime @sysconfdir@/avahi/etc >/dev/null 2>&1
122     fi;
123     
124     $DAEMON -D
125 }
126
127 #
128 #       Function that stops the daemon/service.
129 #
130 d_stop() {
131     $DAEMON -c
132     [ $? != 0 ] && exit 0
133
134     $DAEMON -k
135 }
136
137 #
138 #       Function that reload the config file for the daemon/service.
139 #
140 d_refresh() {
141     $DAEMON -c
142     [ $? != 0 ] && exit 0
143
144     $DAEMON -r
145 }
146
147 #
148 #       Function that check the status of the daemon/service.
149 #
150 d_status() {
151     $DAEMON -c
152     [ $? = 0 ]  && echo "$DESC is running" || echo "$DESC is not running"
153 }
154
155 case "$1" in
156     start)
157         log_begin_msg "Starting $DESC: $NAME"
158         d_start
159         log_end_msg $?
160         ;;
161     stop)
162         log_begin_msg "Stopping $DESC: $NAME"
163         d_stop
164         log_end_msg $?
165         ;;
166     refresh)
167         log_begin_msg "Refreshing $DESC: $NAME"
168         d_refresh
169         log_end_msg $?
170         ;;
171     reload|restart|force-reload)
172         log_begin_msg "Restarting $DESC: $NAME"
173         $DAEMON -c && d_stop
174         d_start
175         log_end_msg $?
176         ;;
177     status)
178         d_status
179         ;;
180     *)
181         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|reload}" >&2
182         exit 1
183         ;;
184 esac
185
186 exit 0