openacs-4/etc/deploy.sh (+43)
  1 #!/bin/bash
  2 # should turn this into an /etc/init.d script, with commands:
  3 #  status (prod is X, up 100 seconds; alt is Y, down)
  4 #  promote X (automatically makes X production and demotes current prod to preprod)
  5
  6 E_BADARGS=65
  7 if [ ! -n "$1" ]
  8 then
  9   echo "Usage: `basename $0` Old New "
  10   echo "Current Old:`ls -l /web/ | grep primary`"
  11   echo "Current New:`ls -l /web/ | grep alternate`"
  12   exit $E_BADARGS
  13 fi 
  14 PROD=primary
  15 ALT=alternate
  16 BASE_DIR=/var/lib/aolserver
  17 SVC_DIR=/var/lib/svscan
  18 OLD=$1
  19 NEW=$2
  20
  21 # basic premise: a server named foo is controlled by daemontools as $SVC_DIR/foo,
  22 # and is actually rooted at BASE_DIR/foo
  23 # when it is moved to production, its config.tcl is updated
  24 # and the BASE_DIR/PROD link is changed to point to it
  25 # and BASE_DIR/ALT is changed to point to whatever it replaced
  26
  27 svc -d $SVC_DIR/$OLD
  28 svc -d $SVC_DIR/$NEW
  29 cd $BASE_DIR
  30 rm $PROD
  31 rm $ALT
  32 cd $BASE_DIR/$NEW/etc
  33 cvs up -r $PROD config.tcl
  34 cd $BASE_DIR/$OLD/etc
  35 cvs up -r $ALT config.tcl
  36 cd $BASE_DIR
  37 ln -s $NEW $PROD
  38 ln -s $OLD $ALT
  39 svc -u $SVC_DIR/$NEW
  40 svc -u $SVC_DIR/$OLD
  41
  42 # show status
  43 svstat $SVC_DIR/*