#! /bin/sh ### BEGIN INIT INFO # Provides: cups-browsed # Required-Start: $syslog $remote_fs $network $named $time # Required-Stop: $syslog $remote_fs $network $named $time # Should-Start: avahi-daemon # Should-Stop: avahi-daemon # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: cups-browsed - Make remote CUPS printers available locally # Description: This daemon browses Bonjour broadcasts of shared remote CUPS # printers and makes these printers available locally by creating # local CUPS queues pointing to the remote queues. This replaces # the CUPS browsing which was dropped in CUPS 1.6.1. For the end # the behavior is the same as with the old CUPS broadcasting/ # browsing, but in the background the standard method for network # service announcement and discovery, Bonjour, is used. ### END INIT INFO global DAEMON := '/usr/sbin/cups-browsed' global NAME := 'cups-browsed' global PIDFILE := "/var/run/cups/$NAME.pid" global DESC := '"CUPS Bonjour daemon'" unset TMPDIR test -x $DAEMON || exit 0 source /lib/lsb/init-functions global SSD_OPTIONS := ""--quiet --pidfile $PIDFILE --make-pidfile"" matchstr $1 { start { log_begin_msg "Starting $DESC: $NAME" mkdir -p $[dirname $PIDFILE] start-stop-daemon --start --oknodo --background $SSD_OPTIONS --exec $DAEMON log_end_msg $Status } stop { log_begin_msg "Stopping $DESC: $NAME" start-stop-daemon --stop --retry 5 --oknodo $SSD_OPTIONS --name $NAME log_end_msg $Status rm -f $PIDFILE } restart|force-reload { log_begin_msg "Restarting $DESC: $NAME" if start-stop-daemon --stop --retry 5 --oknodo $SSD_OPTIONS --name $NAME { start-stop-daemon --start --background $SSD_OPTIONS --exec $DAEMON } log_end_msg $Status } status { status_of_proc $DAEMON $NAME && exit 0 || exit $Status } * { global N := "/etc/init.d/$(0##*/)" echo "Usage: $N {start|stop|force-reload|restart|status}" > !2 exit 1 } } exit 0 (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DAEMON) op: Equal rhs: {(/usr/sbin/cups-browsed)} spids: [55] ) ] spids: [55] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:NAME) op:Equal rhs:{(cups-browsed)} spids:[58])] spids: [58] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PIDFILE) op: Equal rhs: {(/var/run/cups/) ($ VSub_Name "$NAME") (.pid)} spids: [61] ) ] spids: [61] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DESC) op: Equal rhs: {(DQ ("CUPS Bonjour daemon"))} spids: [66] ) ] spids: [66] ) (C {(unset)} {(TMPDIR)}) (AndOr children: [(C {(test)} {(-x)} {($ VSub_Name "$DAEMON")}) (C {(exit)} {(0)})] op_id: Op_DPipe ) (C {(.)} {(/lib/lsb/init-functions)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SSD_OPTIONS) op: Equal rhs: {(DQ ("--quiet --pidfile ") ($ VSub_Name "$PIDFILE") (" --make-pidfile"))} spids: [95] ) ] spids: [95] ) (Case to_match: {(DQ ($ VSub_Number "$1"))} arms: [ (case_arm pat_list: [{(start)}] action: [ (C {(log_begin_msg)} {(DQ ("Starting ") ($ VSub_Name "$DESC") (": ") ($ VSub_Name "$NAME"))}) (C {(mkdir)} {(-p)} { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ ($ VSub_Name "$PIDFILE"))})] ) left_token: spids: [131 137] ) } ) (C {(start-stop-daemon)} {(--start)} {(--oknodo)} {(--background)} {($ VSub_Name "$SSD_OPTIONS")} {(--exec)} {($ VSub_Name "$DAEMON")} ) (C {(log_end_msg)} {($ VSub_QMark "$?")}) ] spids: [112 113 160 -1] ) (case_arm pat_list: [{(stop)}] action: [ (C {(log_begin_msg)} {(DQ ("Stopping ") ($ VSub_Name "$DESC") (": ") ($ VSub_Name "$NAME"))}) (C {(start-stop-daemon)} {(--stop)} {(--retry)} {(5)} {(--oknodo)} {($ VSub_Name "$SSD_OPTIONS")} {(--name)} {($ VSub_Name "$NAME")} ) (C {(log_end_msg)} {($ VSub_QMark "$?")}) (C {(rm)} {(-f)} {($ VSub_Name "$PIDFILE")}) ] spids: [163 164 206 -1] ) (case_arm pat_list: [{(restart)} {(force-reload)}] action: [ (C {(log_begin_msg)} {(DQ ("Restarting ") ($ VSub_Name "$DESC") (": ") ($ VSub_Name "$NAME"))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(start-stop-daemon)} {(--stop)} {(--retry)} {(5)} {(--oknodo)} {($ VSub_Name "$SSD_OPTIONS")} {(--name)} {($ VSub_Name "$NAME")} ) terminator: ) ] action: [ (C {(start-stop-daemon)} {(--start)} {(--background)} {($ VSub_Name "$SSD_OPTIONS")} {(--exec)} {($ VSub_Name "$DAEMON")} ) ] spids: [-1 244] ) ] spids: [-1 260] ) (C {(log_end_msg)} {($ VSub_QMark "$?")}) ] spids: [209 212 268 -1] ) (case_arm pat_list: [{(status)}] action: [ (AndOr children: [ (C {(status_of_proc)} {(DQ ($ VSub_Name "$DAEMON"))} {(DQ ($ VSub_Name "$NAME"))}) (AndOr children: [(C {(exit)} {(0)}) (C {(exit)} {($ VSub_QMark "$?")})] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [271 272 298 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:N) op: Equal rhs: {(/etc/init.d/) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_DPound arg_word:{("*") (Lit_Slash /)}) spids: [307 312] ) } spids: [305] ) ] spids: [305] ) (SimpleCommand words: [ {(echo)} {(DQ ("Usage: ") ($ VSub_Name "$N") (" {start|stop|force-reload|restart|status}"))} ] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[323])] ) (C {(exit)} {(1)}) ] spids: [301 302 332 -1] ) ] spids: [103 109 334] ) (C {(exit)} {(0)}) ] )