OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Thomas Lotterer Root: /e/openpkg/cvs Email: [EMAIL PROTECTED] Module: openpkg-re Date: 11-Mar-2003 10:10:25 Branch: HEAD Handle: 2003031109102400 Modified files: openpkg-re openpkg-dev Log: introduce execute (on instance closest to branch) command Summary: Revision Changes Path 1.60 +63 -1 openpkg-re/openpkg-dev ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-re/openpkg-dev ============================================================================ $ cvs diff -u -r1.59 -r1.60 openpkg-dev --- openpkg-re/openpkg-dev 10 Mar 2003 14:36:30 -0000 1.59 +++ openpkg-re/openpkg-dev 11 Mar 2003 09:10:24 -0000 1.60 @@ -42,6 +42,7 @@ # default configuration OPENPKG_INST=/cw +OPENPKG_WILD=* OPENPKG_WORK=${HOME}/work/openpkg OPENPKG_TEMP=/tmp/${LOGNAME}/openpkg OPENPKG_MODE=contributor # contributor @@ -51,7 +52,8 @@ [EMAIL PROTECTED]:/e/openpkg/cvs # developer #OPENPKG_DIST=master.openpkg.org:/e/openpkg/ftp/current/SRC/ # developer OPENPKG_REV= -export OPENPKG_INST OPENPKG_WORK OPENPKG_TEMP OPENPKG_MODE OPENPKG_REPO OPENPKG_DIST OPENPKG_REV +OPENPKG_EXEC= +export OPENPKG_INST OPENPKG_WILD OPENPKG_WORK OPENPKG_TEMP OPENPKG_MODE OPENPKG_REPO OPENPKG_DIST OPENPKG_REV OPENPKG_EXEC # override configuration from ${HOME}/.openpkg-dev*.rc progname=`basename $0` @@ -76,6 +78,7 @@ -h|--help ) help=1 ;; -V|--version ) version=1 ;; --inst=* ) OPENPKG_INST=${arg} ;; + --wild=* ) OPENPKG_WILD=${arg} ;; --work=* ) OPENPKG_WORK=${arg} ;; --temp=* ) OPENPKG_TEMP=${arg} ;; --mode=* ) OPENPKG_MODE=${arg} ;; @@ -227,6 +230,7 @@ \$ openpkg-dev bash ...... enter development environment \$ openpkg-dev update .... update development environment from master server \$ openpkg-dev branch .... switch to a different branch + \$ openpkg-dev execute ... execute command on instance closest to branch \$ openpkg-dev install ... install a package \$ openpkg-dev list ...... list source and binary packages \$ openpkg-dev diff ...... dry run "release" @@ -256,6 +260,40 @@ echo "FIXME: still using ${OPENPKG_INST}, automatic instance selection not implemented, yet" } +execute () { + # check for "dry" run + if [ .$1 = .-dry ]; then + dry=1 + shift + else + dry=0 + fi + + # check for "silent" run + if [ .$1 = .-silent ]; then + silent=1 + shift + else + silent=0 + fi + + anybin2branch $1 + shift + branch2instance ${BRANCH} + + if [ ${dry} -eq 0 ]; then + ( + export HOME=${OPENPKG_WORK} + eval `${OPENPKG_EXEC}/etc/rc --eval all env` + [EMAIL PROTECTED] + ) + else + if [ ${silent} -eq 0 ]; then + echo "[EMAIL PROTECTED]" + fi + fi +} + # convert any (branch|instance|name) into branch and set ${BRANCH} # # Branch Instance Name @@ -304,6 +342,28 @@ fi } +branch2instance () { + INSTANCE=`echo "${BRANCH}" | sed -e 's;^OPENPKG_;;' -e 's;_STABLE$;;' -e 's;SOLID$;;' -e 's;^HEAD$;;' -e 's;_;;g'` + OPMAJORV=`echo ${INSTANCE} | cut -c 1` + OPMINORV=`echo ${INSTANCE} | cut -c 2` + AVAILINS=`echo ${OPENPKG_INST}${OPENPKG_WILD} | tr ' ' '\n' | sort` + INSTANCE="" + if [ ".${OPMINORV}" != "." ]; then # SOLID + ADD=`echo "${AVAILINS}" | egrep "^${OPENPKG_INST}${OPMAJORV}${OPMINORV}$"` + INSTANCE="${INSTANCE} ${ADD}" + fi + if [ ".${OPMAJORV}" != "." ]; then # STABLE + ADD=`echo "${AVAILINS}" | egrep "^${OPENPKG_INST}${OPMAJORV}$"` + INSTANCE="${INSTANCE} ${ADD}" + fi + if [ true ]; then # HEAD + ADD=`echo "${AVAILINS}" | egrep "^${OPENPKG_INST}$"` + INSTANCE="${INSTANCE} ${ADD}" + fi + OPENPKG_EXEC="`echo ${INSTANCE} | tr ' ' '\n' | head -n 1`" + unset ADD AVAILINS OPMINORV OPMAJORV INSTANCE +} + bash () { cd ${OPENPKG_WORK} || die "cannot cd to ${OPENPKG_WORK}" @@ -779,6 +839,7 @@ # make sure environment is set up [ ".${OPENPKG_INST}" = . ] && die "OPENPKG_INST is not set"; +[ ".${OPENPKG_WILD}" = . ] && echo "OPENPKG_WILD is not set"; [ ".${OPENPKG_WORK}" = . ] && die "OPENPKG_WORK is not set"; [ ".${OPENPKG_REPO}" = . ] && die "OPENPKG_REPO is not set"; [ ".${OPENPKG_DIST}" = . ] && die "OPENPKG_DIST is not set"; @@ -789,6 +850,7 @@ update | u* ) cmd="update" ;; branch | br* ) cmd="branch" ;; bash | b* ) cmd="bash" ;; + execute | e* ) cmd="execute" ;; list | l* ) cmd="list" ;; diff | d* ) cmd="diff" ;; release | r* ) cmd="release" ;; @@ . ______________________________________________________________________ The OpenPKG Project www.openpkg.org CVS Repository Commit List [EMAIL PROTECTED]