#!/bin/sh # # Name: pc_switch # # Author: Antony Mee (A.J.Mee@ncl.ac.uk) # Date: 12-Nov-2004 # # CVS: $Id$ # # Description: # A script to help with switching between multiple branches # or other working directories (eg. pristine copy for # auto-testing) on a single machine. # # Run with $PENCIL_TREE unset to get some usage info. # if [ -z "$PENCIL_TREE" ]; then echo echo "Failure: \$PENCIL_TREE not set!" echo echo "pc_switch requires you to have a top level directory underwhich" echo "you will place your pencil-code working copies and actual" echo "directory $PENCIL_HOME. This path should be set in a variable " echo "\$PENCIL_TREE. Example, I have: " echo " \$PENCIL_TREE/pencil-code (just symbolic link - created by this script)" echo " \$PENCIL_TREE/branches (a directory to contain the branches)" echo " \$PENCIL_TREE/branches/trunk (complete working copy of trunk)" echo " \$PENCIL_TREE/branches/eos (complete working copy of eos branch)" echo "You will also need \$PENCIL_HOME set to \$PENCIL_TREE/pencil-code" echo echo "and \$PENCIL_HOME/bin in your path (NOT \$PENCIL_TREE/branches/XXX/bin!!)" echo echo "Also, to save space I check out peoples run directories under \$PENCIL_TREE/people" echo " eg. cvs co -d \$PENCIL_TREE/people/anders pencil-anders" echo "and symbolically link them under each of the branches." echo exit fi cd $PENCIL_TREE if [ "$1" ] && [ -d branches/$1 ]; then rm -f pencil-code ln -sf branches/$1 pencil-code if [ `pwd` == $PENCIL_HOME ]; then cd .. cd pencil-code fi else echo -n " Current setting: " readlink pencil-code echo -n "Available choices are: " ls branches fi