#! /bin/sh 
### BEGIN INIT INFO 
# Provides: calibre 
# Required-Start: network 
# Required-Stop: 
# Default-Start: 2 3 4 5 
# Default-Stop: 0 1 6 
# Short-Description: Controls the Calibre content server 
# Description: Controls the Calibre content web server 
# 
### END INIT INFO 
# Author: Rik Goldman 
# 
# Please remove the "Author" lines above and replace them 
# with your own name if you copy and modify this script. 
# Do NOT "set -e" 
# PATH should only include /usr/* if it runs after the mountnfs.sh script 
# 
# 
PATH=/sbin:/usr/sbin:/bin:/usr/bin 
DESC="Calibre Content Server" 
NAME=calibre-server 
DAEMON=/usr/bin/$NAME 
PIDFILE=/var/run/$NAME.pid 
# Edit the CONTENT variable below to point it to your library directory. 
# Edit the PORT variable below to change the port the server will run on. 
# Edit the MAX_COVER variable below to change the maximum size of a book cover image. 
CONTENT=/var/calibre-data/ 
UN=""
PW=""
PORT=80
MAX_COVER=600x800 
# The --auto-reload flag refreshes the server on a database change. 
DAEMON_ARGS="--url-prefix /calibre --username=$UN --password=$PW --auto-reload --with-library=$CONTENT --pidfile=$PIDFILE --port=$PORT --max-cover=$MAX_COVER --daemonize"
 SCRIPTNAME=/etc/init.d/$NAME 
 # Exit if the package is not installed 
 [ -x "$DAEMON" ] || exit 0 
 # Read configuration variable file if it is present 
 [ -r /etc/default/$NAME ] && . /etc/default/$NAME 
 # Load the VERBOSE setting and other rcS variables 
 . /lib/init/vars.sh 
 # Define LSB log_* functions. 
 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. 
 . /lib/lsb/init-functions 
 # 
 # Function that starts the daemon/service 
 # 
 do_start() 
 { 
 # Return 
 # 0 if daemon has been started 
 # 1 if daemon was already running 
 # 2 if daemon could not be started 
 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null || return 1 
 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- $DAEMON_ARGS || return 2 
 } 
 # 
 # Function that stops the daemon/service 
 # 
 do_stop() 
 { 
 # Return 
 # 0 if daemon has been stopped 
 # 1 if daemon was already stopped 
 # 2 if daemon could not be stopped 
 # other if a failure occurred 
 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE 
 RETVAL="$?" 
 [ "$RETVAL" = 2 ] && return 2 
 # Wait for children to finish too if this is a daemon that forks 
 # and if the daemon is only ever run from this initscript. 
 # If the above conditions are not satisfied then add some other code 
 # that waits for the process to drop all resources that could be 
 # needed by services started subsequently. A last resort is to 
 # sleep for some time. 
 start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON 
 [ "$?" = 2 ] && return 2 
 # Many daemons don't delete their pidfiles when they exit. 
 rm -f $PIDFILE 
 return "$RETVAL" 
 } 
 # 
 # Function that sends a SIGHUP to the daemon/service 
 # 
 case "$1" in 
 start) 
 [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" 
 do_start 
 case "$?" in 
 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
 esac 
 ;; 
 stop) 
 [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" 
 do_stop 
 case "$?" in 
 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; 
 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; 
 esac 
 ;; 
 status) 
 status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? 
 ;; 
 restart) 
 # 
 # If the "reload" option is implemented then remove the 
 # 'force-reload' alias 
 # 
 log_daemon_msg "Restarting $DESC" "$NAME" 
 do_stop 
 case "$?" in 
 0|1) 
 do_start 
 case "$?" in 
 0) log_end_msg 0 ;; 
 1) log_end_msg 1 ;; # Old process is still running 
 *) log_end_msg 1 ;; # Failed to start 
 esac 
 ;; 
 *) 
 # Failed to stop 
 log_end_msg 1 
 ;; 
 esac 
 ;; 
 *) 
 #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 
 echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2 
 exit 3 
 ;; 
 esac 
 : 
