diff options
| author | Hans-Peter Oeri <hp@oeri.ch> | 2018-10-25 13:27:51 +0200 |
|---|---|---|
| committer | Hans-Peter Oeri <hp@oeri.ch> | 2018-10-25 13:27:51 +0200 |
| commit | c8cfe63aac73a92ae02354a5306ca5480808daff (patch) | |
| tree | 7bf3bcf334051dbf2f8d96981b8d199470064eac /develop_server.sh | |
| parent | 17a536b7ffba296f1fc71337ce8aa2910f5ed3fc (diff) | |
re-do site in schiedsstelle layout
Diffstat (limited to 'develop_server.sh')
| -rwxr-xr-x | develop_server.sh | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/develop_server.sh b/develop_server.sh new file mode 100755 index 0000000..8c2f27f --- /dev/null +++ b/develop_server.sh | |||
| @@ -0,0 +1,103 @@ | |||
| 1 | #!/usr/bin/env bash | ||
| 2 | ## | ||
| 3 | # This section should match your Makefile | ||
| 4 | ## | ||
| 5 | PY=${PY:-python} | ||
| 6 | PELICAN=${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 "an HTTP server to help site development. It doesn't read" | ||
| 25 | echo "your Pelican settings, so if you edit any paths in your Makefile" | ||
| 26 | echo "you will need to edit your settings 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 "Stopping HTTP server" | ||
| 39 | kill $PID | ||
| 40 | else | ||
| 41 | echo "Stale PID, deleting" | ||
| 42 | fi | ||
| 43 | rm $SRV_PID | ||
| 44 | else | ||
| 45 | echo "HTTP 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 HTTP 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 "The HTTP server didn't start. Is there another service using port" $port "?" | ||
| 80 | return 1 | ||
| 81 | fi | ||
| 82 | echo 'Pelican and HTTP 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 | ||
