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 29if [ -f /lib/lsb/init-functions ] 30then 31 . /lib/lsb/init-functions 32else 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 88fi 89 90#set -e 91 92PATH=/sbin:/bin:/usr/sbin:/usr/bin 93DESC="Avahi Unicast DNS Configuration Daemon" 94NAME="avahi-dnsconfd" 95DAEMON="@sbindir@/$NAME" 96SCRIPTNAME=/etc/init.d/$NAME 97 98# Gracefully exit if the package has been removed. 99test -x $DAEMON || exit 0 100 101# don't start if /etc/default/avahi-dnsconfd says so. 102AVAHI_DNSCONFD_START=1 103test -f /etc/default/avahi-dnsconfd && . /etc/default/avahi-dnsconfd 104 105if [ "$AVAHI_DNSCONFD_START" != "1" -a "$1" != "stop" ]; then 106 log_warning_msg "Not starting $DESC $NAME, disabled via /etc/default/$NAME" 107 exit 0 108fi 109 110# 111# Function that starts the daemon/service. 112# 113d_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# 130d_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# 140d_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# 150d_status() { 151 $DAEMON -c 152 [ $? = 0 ] && echo "$DESC is running" || echo "$DESC is not running" 153} 154 155case "$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 ;; 184esac 185 186exit 0 187