#!/usr/bin/env bash # # Find_cvs_root takes either the name of a directory in one # of the cvs repositories used by CDF, or the repository key # # The repository key is one of the following: # # CDF-REP # ZOOM-REP # CD-REP # SRT-REP # OSS-REP _make_my_dir() { # A sub-script to determine the path to the refering script # # The only argument is file description (relative, or absolute). # dir=`dirname ${1}` name=`basename ${1}` [ "${dir}" = '.' ] && dir=`pwd` [ "`echo ${dir} | cut -c1`" = '/' ] || dir=`pwd`/${dir} name=${dir}/${name} link=`ls -l ${name} 2>/dev/null | cut -f2 -d '>' -s | sed 's% %%g'` if [ -n "${link}" ] then [ "`echo ${link} | cut -c1`" = '/' ] || name=${dir}/${link}/name fi My_dir=`dirname $name`; export My_dir } CDF_CVSROOT=":pserver:anonymous@cdfcvs.fnal.gov:/cdf/code/cdfcvs/run2" ZOOM_CVSROOT=":pserver:anonymous@zoomcvs.fnal.gov:/usr/people/cvsuser/repository" OSS_CVSROOT=":pserver:cdfproducts@cdcvs.fnal.gov:/cvs/cd" SRT_CVSROOT=":pserver:cdfproducts@cdcvs.fnal.gov:/cvs/cd" CDF_WRITE=cdfcvs@cdfcvs.fnal.gov:/cdf/code/cdfcvs/run2 ZOOM_WRITE="cvsuser@zoomcvs.fnal.gov:/usr/people/cvsuser/repository" SRT_WRITE="cvsuser@cdcvs.fnal.gov:/cvs/cd" OSS_WRITE="cvsuser@cdcvs.fnal.gov:/cvs/cd" Repository_Keys="CDF-REP \ ZOOM-REP \ SRT-REP \ CD-REP \ OSS-REP" key_search="no" Package=$1 if [ -z "${My_dir}" ] then _make_my_dir $0 fi work_space=`${My_dir}/define_work_area` cd ${work_space} [ -f Distribution/cvsroot.sh -a -f Distribution/cvsrsh ] || \ cvs -d $CDF_CVSROOT checkout Distribution/cvsroot.sh \ Distribution/cvsrsh \ 2>&1 > /dev/null [ -f SRT_CDF/scripts/lscvs ] || cvs -d $SRT_CVSROOT checkout SRT_CDF/scripts/lscvs \ 2>&1 > /dev/null if [ `${My_dir}/which cvs | wc -w` -gt 1 ] then . ~cdfsoft/cdf2.shrc setup cvs fi # CVS_RSH=${work_space}/Distribution/cvsrsh; export CVS_RSH CVS_RSH="/usr/krb5/bin/rsh -N -X -k FNAL.GOV -n"; export CVS_RSH LSCVS=${work_space}/SRT_CDF/scripts/lscvs chmod +x ${LSCVS} for key in $Repository_Keys do if [ ${Package} = ${key} ] then key_search="yes" fi done if [ "${key_search}" = "yes" ] then key=$Package fi if [ "${key_search}" = "no" ] then if [ ! -r $SRT_DIST/releases/development/Release/CVS/Root ] then ############################################## # Create repository content lists if missing # ############################################## if [ `cat ${work_space}/cdfcvs.list 2>/dev/null | wc -w` -lt 1 ] then [ -f ${work_space}/cdfcvs.list ] && rm ${work_space}/cdfcvs.list . ${work_space}/Distribution/cvsroot.sh cdfw 2>&1 > /dev/null export CVSROOT ${LSCVS} | ${My_dir}/split_ls | sort -k1,1 > ${work_space}/cdfcvs.list \ 2>/dev/null fi if [ `cat ${work_space}/zoomcvs.list 2>/dev/null | wc -w` -lt 1 ] then [ -f ${work_space}/zoomcvs.list ] && rm ${work_space}/zoomcvs.list . ${work_space}/Distribution/cvsroot.sh zoomw 2>&1 > /dev/null export CVSROOT ${LSCVS} | ${My_dir}/split_ls | sort -k1,1 > ${work_space}/zoomcvs.list \ 2>/dev/null fi if [ `cat ${work_space}/srtcvs.list 2>/dev/null | wc -w` -lt 1 ] then [ -f ${work_space}/srtcvs.list ] && rm ${work_space}/srtcvs.list . ${work_space}/Distribution/cvsroot.sh srtw 2>&1 > /dev/null export CVSROOT ${LSCVS} | ${My_dir}/split_ls | sort -k1,1 > ${work_space}/srtcvs.list \ 2>/dev/null fi key='' for rep in cdf srt zoom do reptest=`grep ^${Package}\$ ${work_space}/${rep}cvs.list` if [ "${reptest}" = "${Package}" ] then repw=`echo ${rep} | tr 'a-z' 'A-Z'` key=${repw}-REP break fi done else key='' [ -r ${SRT_DIST}/releases/development/${Package}/CVS/Root ] && \ CVSROOT=`cat ${SRT_DIST}/releases/development/${Package}/CVS/Root` [ -n "`echo ${CVSROOT} | grep 'cdfcvs'`" ] && key="CDF-REP" [ -n "`echo ${CVSROOT} | grep 'zoomcvs'`" ] && key="ZOOM-REP" [ -n "`echo ${CVSROOT} | grep 'srtcvs'`" ] && key="SRT-REP" fi fi if [ "${key}" = '' ] then /bin/echo ${CDF_CVSROOT}','${CDF_WRITE}','ERROR_IN_FIND rm -r ${work_space}/Distribution exit fi case ${key} in CDF-REP) . ${work_space}/Distribution/cvsroot.sh cdf 2>&1 > /dev/null CDF_WRITE=`echo ${CVSROOT} | sed 's%:pserver:anonymous%cdfcvs%'` /bin/echo ${CVSROOT}','${CDF_WRITE}','CDF rm -r ${work_space}/Distribution exit ;; ZOOM-REP) . ${work_space}/Distribution/cvsroot.sh zoom 2>&1 > /dev/null ZOOM_WRITE=`echo ${CVSROOT} | sed 's%:pserver:anonymous%cvsuser%'` /bin/echo ${CVSROOT}','${ZOOM_WRITE}','ZOOM rm -r ${work_space}/Distribution exit ;; SRT-REP) . ${work_space}/Distribution/cvsroot.sh cd 2>&1 > /dev/null SRT_WRITE=cvsuser@cdcvs.fnal.gov:/cvs/cd /bin/echo ${CVSROOT}','${SRT_WRITE}','SRT rm -r ${work_space}/Distribution exit ;; esac