#!/bin/sh progname=`basename $0` usage() { echo "Usage:"; echo " ${progname} -u cvs-user -r build-revision [-d destination_dir]"; echo echo " -u cvs-user Your cvs username (typically the same as your NetInfo user)" echo " -r build-revision The build number. Same as the number in revision.h" echo " -d destination_dir The (existing) directory you'd like to check out into." echo " \"/tmp\" is the default" echo " -T Don't perform a 'cvs tag'" echo " -F Force a 'cvs tag' (cvs tag -F)" echo; echo "${progname} will create a qtssPackageMetaData-XXX directory, tag it, then run ~rc/bin/buildit on it." } echo if [ `id -u` != 0 ] then echo "### You must be root to execute this script ###" exit 1 fi args=`getopt u:p:r:d:TFv $*` stat=$? if [ ${stat} -ne 0 ] then usage; exit 2; fi do_tag=true force_tag="" set -- $args for i do case "$i" in -u) cvs_user=$2; shift; shift;; -p) project_dir=$2; shift; shift;; -r) build_number=$2; shift; shift;; -d) dest_dir=$2; shift; shift;; -T) do_tag=false; shift;; -F) force_tag="-F"; shift;; -v) usage; shift;; \?) usage; exit 1;; --) shift; break;; esac done if [ ! ${build_number} ] then echo "## Error: Missing build-revision ##" echo usage; exit 1; fi if [ ! ${cvs_user} ] then echo "## Error: Missing cvs-user ##" echo usage; exit 1; fi ## ##arguments look good...continue ## orig_dir=`pwd` #remember our original working directory ## use /tmp if a destination directory is not specified if [ ! ${dest_dir} ] then echo Setting dest_dir to /tmp dest_dir='/tmp' fi project_dirname=qtssPackageMetaData-${build_number} #set project_dir to absolute path project_path=${dest_dir}/${project_dirname} #set project_dir to absolute path ##remove and prior attampts # if [ -d ${project_path} ] then echo;echo Removing ${project_path} rm -r ${project_path} fi ##cd into ${dest_dir} # cd ${dest_dir} echo;echo "##" echo "## Updating from CVS ##" echo "##" ##checkout main server source # echo; echo Checking out StreamingServer/qtssPackageMetaData to ${project_path} echo "___________________________________________________" echo sudo -u ${cvs_user} cvs -d cvs.opensource.apple.com:/cvs/Darwin -s CVS_RSH=ssh -z3 checkout -P -d qtssPackageMetaData.tmp StreamingServer/qtssPackageMetaData sudo -u ${cvs_user} cvs -d cvs.opensource.apple.com:/cvs/Darwin -s CVS_RSH=ssh -z3 checkout -P -d qtssPackageMetaData.tmp StreamingServer/qtssPackageMetaData echo mv ${dest_dir}/qtssPackageMetaData.tmp/qtssPackageMetaData ${project_path} mv ${dest_dir}/qtssPackageMetaData.tmp/qtssPackageMetaData ${project_path} rm -r rmdir ${dest_dir}/qtssPackageMetaData.tmp rm -r ${dest_dir}/qtssPackageMetaData.tmp ##cd into ${project_path} # cd ${project_path} ## tag the checkout if ( ${do_tag} ) then echo;echo "Tagging current files as qtssPackageMetaData-${build_number}" echo "_____________________________________________" cd ${project_path} echo cvs ${cvs_options} -q tag ${force_tag} -R qtssPackageMetaData-${build_number} sudo -u ${cvs_user} cvs ${cvs_options} -q tag ${force_tag} -R qtssPackageMetaData-${build_number} fi ## rm QTSS3.pkg echo rm -r ${project_path}/qtssPackageMetaData/QTSS3.pkg rm -r ${project_path}/qtssPackageMetaData/QTSS3.pkg ## rm the CVS directories # echo Removing CVS directories find . \( -name "CVS" \) -exec rm -rf {} \; cd ${orig_dir} echo "##" echo "Executing buildit on ${project_path}" echo "_________________________________________" echo ~rc/bin/buildit ${project_path} ~rc/bin/buildit ${project_path} echo "#################################" echo "#################################" echo;echo echo If you would like to submit this project now, type the echo train name (ex. Cartman) and hit enter: read train_name if [ ! ${train_name} ] then echo exit 0; fi echo Copying ${project_path} to your home directoy cp -r ${project_path} ~ cd ~ echo sudo -u ${cvs_user} ~rc/bin/submitproject ${project_dirname} ${train_name} sudo -u ${cvs_user} ~rc/bin/submitproject ${project_dirname} ${train_name} exit 0 cd ${orig_dir} exit 0