Commit 79c52e7625fe9ee593b4bd677b7ab90ce18c0fc7
1 parent
a39284ed
added option handling to script
git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@708 c91229c3-7414-0410-bfa2-8a42b809f60b
Showing
1 changed file
with
64 additions
and
28 deletions
bin/remote_update.sh
| 1 | 1 | #!/bin/sh |
| 2 | +# | |
| 3 | +# script to checkout the latest tagged build from cvs and upload | |
| 4 | +# to the remote server of your choice | |
| 2 | 5 | |
| 6 | +## functions | |
| 7 | + | |
| 8 | +# displays the script usage message | |
| 9 | +# | |
| 10 | +usage() { | |
| 11 | + echo "usage: `basename $0` -t cvstag -h user@host -d remoteDir" | |
| 12 | + echo " eg. `basename $0` -t DMS_ITERATION1_29012003 -h michael@gobbler.jamwarehouse.com -d /usr/local/www/owl/dms" | |
| 13 | + exit 1 | |
| 14 | +} | |
| 15 | + | |
| 16 | +deploy() { | |
| 17 | + # cleanup | |
| 18 | + rm -rf $tmp* 2> /dev/null | |
| 19 | + mkdir $tmp | |
| 20 | + | |
| 21 | + # export owl | |
| 22 | + cd $tmp | |
| 23 | + #cvs -d $cvsroot co -r $tag owl | |
| 24 | + cvs -d $cvsroot co owl | |
| 25 | + cd owl/Documents | |
| 26 | + cvs update -d | |
| 27 | + # remove CVS directories | |
| 28 | + find $tmp -name CVS -exec rm -rf {} \; 2> /dev/null | |
| 29 | + | |
| 30 | + # tar it up | |
| 31 | + tar -czvf /tmp/owl.tgz $tmp | |
| 32 | + # punt it over the wall | |
| 33 | + scp /tmp/owl.tgz $host:/tmp/ | |
| 34 | + | |
| 35 | + # untar it remotely | |
| 36 | + ssh $host "cd $remotePath; mv $remoteDir $remoteDir-`date +%Y-%m-%d`; tar -zxvf /tmp/owl.tgz; rm /tmp/owl.tgz; mv tmp/dms/owl $remoteDir; rm -rf tmp" | |
| 37 | +} | |
| 38 | + | |
| 39 | +# check the command line options | |
| 40 | +if [ $# -lt 3 ]; then | |
| 41 | + usage | |
| 42 | +fi | |
| 43 | + | |
| 44 | +# process the params | |
| 45 | +while getopts ":t:h:d:" Option | |
| 46 | +do | |
| 47 | + case $Option in | |
| 48 | + t ) tag=$OPTARG;; | |
| 49 | + h ) host=$OPTARG;; | |
| 50 | + d ) dir=$OPTARG ;; | |
| 51 | + * ) usage;; | |
| 52 | + esac | |
| 53 | +done | |
| 54 | + | |
| 55 | +# check that everything we want is set | |
| 56 | +if [ -z $tag -o -z $host -o -z $dir ]; then | |
| 57 | + usage | |
| 58 | +fi | |
| 59 | + | |
| 60 | +# setup up some paths and stuff | |
| 3 | 61 | cvsroot=/usr/local/cvsroot |
| 4 | 62 | tmp=/tmp/dms |
| 5 | -tag=DMS_ITERATION1_29012003 | |
| 6 | -scpUser=michael | |
| 7 | -remote=gobbler.jamwarehouse.com | |
| 8 | -remotePath=/usr/local/www/owl | |
| 9 | -remoteDir=dms | |
| 10 | - | |
| 11 | -# cleanup | |
| 12 | -rm -rf $tmp* 2> /dev/null | |
| 13 | -mkdir $tmp | |
| 14 | - | |
| 15 | -# export owl | |
| 16 | -cd $tmp | |
| 17 | -#cvs -d $cvsroot co -r $tag owl | |
| 18 | -cvs -d $cvsroot co owl | |
| 19 | -cd owl/Documents | |
| 20 | -cvs update -d | |
| 21 | - | |
| 22 | -# remove CVS directories | |
| 23 | -find $tmp -name CVS -exec rm -rf {} \; 2> /dev/null | |
| 24 | - | |
| 25 | -# tar it up | |
| 26 | -tar -czvf /tmp/owl.tgz $tmp | |
| 27 | - | |
| 28 | -# punt it over the wall | |
| 29 | -scp /tmp/owl.tgz $scpUser@$remote:$remotePath | |
| 30 | - | |
| 31 | -# untar it remotely | |
| 32 | -ssh $scpUser@$remote "cd $remotePath; mv $remoteDir $remoteDir-`date +%Y-%m-%d`; tar -zxvf owl.tgz; rm owl.tgz; mv tmp/dms/owl $remoteDir; rm -rf tmp" | |
| 63 | +remotePath=`dirname $dir` | |
| 64 | +remoteDir=`basename $dir` | |
| 65 | + | |
| 66 | +# now just do it | |
| 67 | +# TODO: return code handling | |
| 68 | +deploy | ... | ... |