comparison develop_server.sh @ 0:c4ec6945bb86

Just ran pelican-quickstart and answered some questions. Created .hgignore file.
author Brian Neal <bgneal@gmail.com>
date Wed, 29 Jan 2014 18:53:45 -0600
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:c4ec6945bb86
1 #!/usr/bin/env bash
2 ##
3 # This section should match your Makefile
4 ##
5 PY=python
6 PELICAN=pelican
7 PELICANOPTS=
8
9 BASEDIR=$(pwd)
10 INPUTDIR=$BASEDIR/content
11 OUTPUTDIR=$BASEDIR/output
12 CONFFILE=$BASEDIR/pelicanconf.py
13
14 ###
15 # Don't change stuff below here unless you are sure
16 ###
17
18 SRV_PID=$BASEDIR/srv.pid
19 PELICAN_PID=$BASEDIR/pelican.pid
20
21 function usage(){
22 echo "usage: $0 (stop) (start) (restart) [port]"
23 echo "This starts pelican in debug and reload mode and then launches"
24 echo "A pelican.server to help site development. It doesn't read"
25 echo "your pelican options so you edit any paths in your Makefile"
26 echo "you will need to edit it as well"
27 exit 3
28 }
29
30 function alive() {
31 kill -0 $1 >/dev/null 2>&1
32 }
33
34 function shut_down(){
35 PID=$(cat $SRV_PID)
36 if [[ $? -eq 0 ]]; then
37 if alive $PID; then
38 echo "Killing pelican.server"
39 kill $PID
40 else
41 echo "Stale PID, deleting"
42 fi
43 rm $SRV_PID
44 else
45 echo "pelican.server PIDFile not found"
46 fi
47
48 PID=$(cat $PELICAN_PID)
49 if [[ $? -eq 0 ]]; then
50 if alive $PID; then
51 echo "Killing Pelican"
52 kill $PID
53 else
54 echo "Stale PID, deleting"
55 fi
56 rm $PELICAN_PID
57 else
58 echo "Pelican PIDFile not found"
59 fi
60 }
61
62 function start_up(){
63 local port=$1
64 echo "Starting up Pelican and pelican.server"
65 shift
66 $PELICAN --debug --autoreload -r $INPUTDIR -o $OUTPUTDIR -s $CONFFILE $PELICANOPTS &
67 pelican_pid=$!
68 echo $pelican_pid > $PELICAN_PID
69 cd $OUTPUTDIR
70 $PY -m pelican.server $port &
71 srv_pid=$!
72 echo $srv_pid > $SRV_PID
73 cd $BASEDIR
74 sleep 1
75 if ! alive $pelican_pid ; then
76 echo "Pelican didn't start. Is the pelican package installed?"
77 return 1
78 elif ! alive $srv_pid ; then
79 echo "pelican.server didn't start. Is there something else which uses port 8000?"
80 return 1
81 fi
82 echo 'Pelican and pelican.server processes now running in background.'
83 }
84
85 ###
86 # MAIN
87 ###
88 [[ ($# -eq 0) || ($# -gt 2) ]] && usage
89 port=''
90 [[ $# -eq 2 ]] && port=$2
91
92 if [[ $1 == "stop" ]]; then
93 shut_down
94 elif [[ $1 == "restart" ]]; then
95 shut_down
96 start_up $port
97 elif [[ $1 == "start" ]]; then
98 if ! start_up $port; then
99 shut_down
100 fi
101 else
102 usage
103 fi