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:   31-Mar-2003 23:20:19
  Branch: HEAD                             Handle: 2003033122201800

  Modified files:
    openpkg-re              openpkg-dev

  Log:
    implement PBE logic into setup() and dependencies

  Summary:
    Revision    Changes     Path
    1.80        +106 -80    openpkg-re/openpkg-dev
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: openpkg-re/openpkg-dev
  ============================================================================
  $ cvs diff -u -r1.79 -r1.80 openpkg-dev
  --- openpkg-re/openpkg-dev    31 Mar 2003 18:39:38 -0000      1.79
  +++ openpkg-re/openpkg-dev    31 Mar 2003 21:20:18 -0000      1.80
  @@ -141,25 +141,40 @@
   }
   
   setup () {
  +    #   honor optional parameters [[[spec]ctag]exec]
  +    [ ".$1" != . ] && OPENPKG_SPEC="$1";
  +    [ ".$2" != . ] && OPENPKG_CTAG="$2";
  +    [ ".$3" != . ] && OPENPKG_EXEC="$3";
  +
  +    #   OPENPKG_SPEC in setup() is only a flag to indicate minimal checkout
  +
  +    #   canonify OPENPKG_CTAG
  +    canonifybranch "${OPENPKG_CTAG}"
  +    OPENPKG_CTAG="${RV}"
  +
  +    #   canonify OPENPKG_EXEC
  +    canonifybranch "${OPENPKG_EXEC:-$OPENPKG_CTAG}"
  +    branch2instance "${RV}"
  +    OPENPKG_EXEC="${RV}"
  +
  +    #   set P,B,E without having "cd()" already in place
  +    P="${OPENPKG_SPEC}"
  +    B="${OPENPKG_CTAG}"
  +    E="${OPENPKG_EXEC}"
  +
       #   sanity check
  -    case ${OPENPKG_WORK} in
  +    case "${OPENPKG_WORK}" in
           /?* ) ;;
           * ) die "working area ${OPENPKG_WORK} seems to be strange" ;;
       esac
  -    if [ -d ${OPENPKG_WORK} ]; then
  +    if [ -d "${OPENPKG_WORK}" ]; then
           die "working area ${OPENPKG_WORK} already exists"
       fi
   
  -    #   make sure a OpenPKG instance can be found
  -    if [ ! -f ${OPENPKG_INST}/bin/rpm ]; then
  -        echo "openpkg-dev:ERROR: no working OpenPKG instance found under 
${OPENPKG_INST}" 1>&2
  -        exit 1
  -    fi
  -
       #   create a working area
       echo "++ creating working area ${OPENPKG_WORK}"
  -    if [ ! -d ${OPENPKG_WORK} ]; then
  -        makedir 755 ${OPENPKG_WORK} || die "failed to create ${OPENPKG_WORK} 
directory"
  +    if [ ! -d "${OPENPKG_WORK}" ]; then
  +        makedir 755 "${OPENPKG_WORK}" || die "failed to create ${OPENPKG_WORK} 
directory"
       fi
   
       #   sane environment
  @@ -167,7 +182,7 @@
   
       #   create a .cvsrc
       echo "++ creating CVS configuration (${OPENPKG_WORK}/.cvsrc)"
  -    sed -e 's;^ *;;' <<EOF >${OPENPKG_WORK}/.cvsrc
  +    sed -e 's;^ *;;' <<EOF >"${OPENPKG_WORK}/.cvsrc"
           cvs -z4
           checkout -P
           update -P -d
  @@ -176,7 +191,7 @@
   EOF
   
       echo "++ creating CVS file ignore list (${OPENPKG_WORK}/.cvsignore)"
  -    sed -e 's;^ *;;' <<EOF >${OPENPKG_WORK}/.cvsignore
  +    sed -e 's;^ *;;' <<EOF >"${OPENPKG_WORK}/.cvsignore"
           .[a-za-Z0-9]*
           00README
           dst
  @@ -185,14 +200,10 @@
   
       #   create a .rpmmacros, save existing, overwrite only if different
       echo "++ creating RPM configuration (${OPENPKG_WORK}/.rpmmacros)"
  -    sed -e 's;^ *;;' <<EOF >${OPENPKG_WORK}/.rpmmacros
  +    sed -e 's;^ *;;' <<EOF >"${OPENPKG_WORK}/.rpmmacros"
           #   source areas
           %_sourcedir    %(echo \${OPENPKG_WORK})/dst/%{name}
           %_specdir      %(echo \${OPENPKG_WORK})/src/%{name}
  -        
  -        #   source areas (special setup; enable on demand)
  -        #%_sourcedir    %(echo \${OPENPKG_WORK})/dst/%{name}
  -        #%_specdir      %(echo \${OPENPKG_WORK})/%(pwd | sed -e 
's;^.*/\\(src-[^/][^/]*\).*\$;=\\1;' -e 's;^[^=].*\$;src;' -e 's;^=;;')/%{name}
   
           #   temporary areas
           %_builddir     %(echo \${OPENPKG_TEMP})
  @@ -202,17 +213,8 @@
           %_rpmdir       %(echo \${OPENPKG_WORK})/pkg/bin
           %_srcrpmdir    %(echo \${OPENPKG_WORK})/pkg/src
   EOF
  -    echo "++ creating directory structure (${OPENPKG_REPO}/{dst,pkg})"
  -    if [ ! -d ${OPENPKG_WORK}/dst ]; then
  -        makedir 755 ${OPENPKG_WORK}/dst || die "failed to create 
${OPENPKG_WORK}/dst directory"
  -    fi
  -    if [ ! -d ${OPENPKG_WORK}/pkg/src ]; then
  -        makedir 755 ${OPENPKG_WORK}/pkg/src || die "failed to create 
${OPENPKG_WORK}/pkg/src directory"
  -    fi
  -    if [ ! -d ${OPENPKG_WORK}/pkg/bin ]; then
  -        makedir 755 ${OPENPKG_WORK}/pkg/bin || die "failed to create 
${OPENPKG_WORK}/pkg/bin directory"
  -    fi
   
  +    echo "++ creating directory structure (${OPENPKG_REPO}/{dst,pkg})"
       #   special overridden setup for dev.de.cw.net domain
       case `hostname` in
           *.dev.de.cw.net ) 
  @@ -227,51 +229,73 @@
                 echo "%_rpmdir          /e/openpkg/PKG/bin"
                 echo "%_srcrpmdir       /e/openpkg/PKG/src"
               ) >>${OPENPKG_WORK}/.rpmmacros
  -            rm -rf ${OPENPKG_WORK}/dst
  -            ln -s /e/openpkg/DST ${OPENPKG_WORK}/dst
  -            rm -rf ${OPENPKG_WORK}/pkg
  -            ln -s /e/openpkg/PKG ${OPENPKG_WORK}/pkg
  +            if [ ! -d "${OPENPKG_WORK}/dst" ]; then
  +                ln -s /e/openpkg/DST "${OPENPKG_WORK}/dst" || die "failed to link 
to ${OPENPKG_WORK}/dst directory"
  +            fi
  +            if [ ! -d "${OPENPKG_WORK}/pkg" ]; then
  +                ln -s /e/openpkg/PKG "${OPENPKG_WORK}/pkg" || die "failed to link 
to ${OPENPKG_WORK}/pkg directory"
  +            fi
               ;;
  +        * )
  +            if [ ! -d "${OPENPKG_WORK}/dst" ]; then
  +                makedir 755 "${OPENPKG_WORK}/dst" || die "failed to create 
${OPENPKG_WORK}/dst directory"
  +            fi
  +            if [ ! -d "${OPENPKG_WORK}/pkg/src" ]; then
  +                makedir 755 ${OPENPKG_WORK}/pkg/src || die "failed to create 
${OPENPKG_WORK}/pkg/src directory"
  +            fi
  +            if [ ! -d "${OPENPKG_WORK}/pkg/bin" ]; then
  +                makedir 755 ${OPENPKG_WORK}/pkg/bin || die "failed to create 
${OPENPKG_WORK}/pkg/bin directory"
  +            fi
       esac
   
       #   checkout the CVS module(s)
  -    echo "++ checking out source areas (${OPENPKG_REPO}/{src,web,doc,re,adm})"
  -    ( cd ${OPENPKG_WORK} 
  -      HOME=${OPENPKG_WORK}
  -      export HOME
  -      cvs -q -d ${OPENPKG_REPO} checkout openpkg-dev-web openpkg-dev-doc 
openpkg-dev-re openpkg-dev-adm
  -      if [ ".${OPENPKG_CTAG:-HEAD}" = .HEAD ]; then
  -          cvs -q -d ${OPENPKG_REPO} checkout openpkg-dev-src
  -      else
  -          cvs -q -d ${OPENPKG_REPO} checkout -r ${OPENPKG_CTAG} openpkg-dev-src
  -      fi
  -    )
  +    if [ ".${P}" = . ]; then
  +        echo "++ checking out source areas (${OPENPKG_REPO}/{adm,doc,re,src,web})"
  +        ( cd "${OPENPKG_WORK}"
  +          HOME="${OPENPKG_WORK}"
  +          export HOME
  +          cvs -q -d "${OPENPKG_REPO}" checkout openpkg-dev-adm openpkg-dev-doc 
openpkg-dev-re openpkg-dev-web
  +          if [ ".${B:-HEAD}" = .HEAD ]; then
  +              cvs -q -d "${OPENPKG_REPO}" checkout openpkg-dev-src
  +          else
  +              cvs -q -d "${OPENPKG_REPO}" checkout -r ${B} openpkg-dev-src
  +          fi
  +        )
  +    else
  +        echo "++ checking out source areas (${OPENPKG_REPO}/{re,src})"
  +        ( cd "${OPENPKG_WORK}"
  +          HOME="${OPENPKG_WORK}"
  +          export HOME
  +          cvs -q -d "${OPENPKG_REPO}" checkout openpkg-dev-re
  +          if [ ".${B:-HEAD}" = .HEAD ]; then
  +              cvs -q -d "${OPENPKG_REPO}" checkout openpkg-dev-src
  +          else
  +              cvs -q -d "${OPENPKG_REPO}" checkout -r ${B} openpkg-dev-src
  +          fi
  +        )
  +    fi
   
       echo "++ creating README file (${OPENPKG_REPO}/00README)"
       sed -e 's;^ *;;' <<EOF >${OPENPKG_WORK}/00README
           OpenPKG Development Area [created by openpkg-dev]
   
  -        \$ openpkg-dev setup ..... already been done ;)
           \$ openpkg-dev bash ...... enter development environment
  -        \$ openpkg-dev update .... update development environment from master server
  -
  -        \$ openpkg-dev package ... switch to a different package
           \$ openpkg-dev branch .... switch to a different branch
  +        \$ openpkg-dev diff ...... dry run "release"
           \$ openpkg-dev execute ... execute command on instance closest to branch
  +        \$ openpkg-dev help ...... display this command summary
  +        \$ openpkg-dev install ... install a package
  +        \$ openpkg-dev kill ...... kill the environment
  +        \$ openpkg-dev lint ...... lint package specification
           \$ openpkg-dev list ...... list source and binary packages
  -        \$ openpkg-dev peek ...... peek at file list of binary package
  -        \$ openpkg-dev search .... search a package on master server
  -
           \$ openpkg-dev new ....... create new packag from scratch
  -        \$ openpkg-dev diff ...... dry run "release"
  -        \$ openpkg-dev lint ...... lint package specification
  +        \$ openpkg-dev package ... switch to a different package
  +        \$ openpkg-dev peek ...... peek at file list of binary package
           \$ openpkg-dev release ... release package changes to master server
  -        \$ openpkg-dev install ... install a package
  -
  -        \$ openpkg-dev kill ...... kill the environment
  -        \$ openpkg-dev help ...... display this command summary
  +        \$ openpkg-dev search .... search a package on master server
  +        \$ openpkg-dev setup ..... already been done ;)
  +        \$ openpkg-dev update .... update development environment from master server
   EOF
  -
   }
   
   update () {
  @@ -352,8 +376,8 @@
       fi
   
       #   setup variables for use or query
  -    anybin2branch "${1}"
  -    branch="${B}"
  +    canonifybranch "${1}"
  +    branch="${RV}"
   
       #   execute query, if any
       if [ ".${query}" != . ]; then
  @@ -376,8 +400,8 @@
   execute () {
       #   no parameter means guessing
       if [ ".$1" = . ]; then
  -        #B=`command ${OPENPKG_WORK}/re/openpkg-dev branch -query branch "$1"`
  -        branch2instance
  +        branch2instance "${B}"
  +        E=${RV}
           echo "${E}"
           return
       fi
  @@ -427,7 +451,7 @@
       fi
   }
   
  -#   convert any (branch|instance|name) into branch and set ${B}
  +#   convert any (branch|instance|name) into branch and return ${RV}
   #
   #   Branch              Instance   Name
   #   ------------------- ---------- --------
  @@ -437,40 +461,40 @@
   #   OPENPKG_1_1_SOLID   /cw11      1.1
   #   OPENPKG_1_0_SOLID   /cw10      1.0
   #
  -anybin2branch () {
  +canonifybranch () {
       #   remove surrounding whitespaces, take first arg only, toupper
  -    B=`echo $1 | cut -f 1 -d" " | tr '[a-z]' '[A-Z]'`
  +    RV=`echo ${1:-HEAD} | cut -f 1 -d" " | tr '[a-z]' '[A-Z]'`
   
       #   strip off any abbreviated form of a leading OPENPKG_
  -    B=`echo "${B}" | sed -e 
's;^O\{0,1\}P\{0,1\}E\{0,1\}N\{0,1\}P\{0,1\}K\{0,1\}G\{0,1\}_\{0,1\};;'`
  +    RV=`echo "${RV}" | sed -e 
's;^O\{0,1\}P\{0,1\}E\{0,1\}N\{0,1\}P\{0,1\}K\{0,1\}G\{0,1\}_\{0,1\};;'`
   
       #   transform instance into branch
  -    B=`echo "${B}" | sed -e 's;^/[A-Z]\{1,\}$;HEAD;' -e 
's;^/[A-Z]\{1,\}\([1-9]\);\1_;'`
  +    RV=`echo "${RV}" | sed -e 's;^/[A-Z]\{1,\}$;HEAD;' -e 
's;^/[A-Z]\{1,\}\([1-9]\);\1_;'`
   
       #   replace dots from (SOLID name) and dashes (STABLE name) with underscore for 
convenience
  -    B=`echo "${B}" | sed -e 's;[\.-];_;g'`
  +    RV=`echo "${RV}" | sed -e 's;[\.-];_;g'`
   
       #   emptiness means invalid branch
  -    if [ ".${B}" = . ]; then
  +    if [ ".${RV}" = . ]; then
           return
       fi
   
       #   check for HEAD (branch) aka CURRENT (name)
  -    echo "CURRENT" | egrep -q "^${B}" && B="HEAD"
  -    echo "HEAD"    | egrep -q "^${B}" && B="HEAD"
  +    echo "CURRENT" | egrep -q "^${RV}" && RV="HEAD"
  +    echo "HEAD"    | egrep -q "^${RV}" && RV="HEAD"
   
  -    if [ .${B} != ".HEAD" ]; then
  +    if [ .${RV} != ".HEAD" ]; then
   
           #   extract branchpoint (1, 1_1 ...) and optional direction
  -        BRANBP=`echo "${B}" | sed -e 
's;^\([1-9][0-9]*\(_\{0,1\}[0-9]*\)\)\(.*\)$;\1;' -e 's;_*$;;'`
  -        BRANDR=`echo "${B}" | sed -e 
's;^\([1-9][0-9]*\(_\{0,1\}[0-9]*\)\)\(.*\)$;\3;' -e 's;^_*;;'`
  +        BRANBP=`echo "${RV}" | sed -e 
's;^\([1-9][0-9]*\(_\{0,1\}[0-9]*\)\)\(.*\)$;\1;' -e 's;_*$;;'`
  +        BRANDR=`echo "${RV}" | sed -e 
's;^\([1-9][0-9]*\(_\{0,1\}[0-9]*\)\)\(.*\)$;\3;' -e 's;^_*;;'`
   
           #   select direction, check optional direction
           echo ${BRANBP} | grep -q '_'
           if [ $? = 0 ]; then
  -            B="OPENPKG_${BRANBP}_SOLID"
  +            RV="OPENPKG_${BRANBP}_SOLID"
           else
  -            B="OPENPKG_${BRANBP}_STABLE"
  +            RV="OPENPKG_${BRANBP}_STABLE"
           fi
   
           unset BRANBP
  @@ -479,7 +503,7 @@
   }
   
   branch2instance () {
  -    INSTANCE=`echo "${B}" | sed -e 's;^OPENPKG_;;' -e 's;_STABLE$;;' -e 
's;SOLID$;;' -e 's;^HEAD$;;' -e 's;_;;g'`
  +    INSTANCE=`echo "$1" | 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`
  @@ -496,7 +520,7 @@
           ADD=`echo "${AVAILINS}" | egrep "^${OPENPKG_INST}$"`
           INSTANCE="${INSTANCE} ${ADD}"
       fi
  -    E="`echo ${INSTANCE} | tr ' ' '\n' | head -n 1`"
  +    RV="`echo ${INSTANCE} | tr ' ' '\n' | head -n 1`"
       unset ADD AVAILINS OPMINORV OPMAJORV INSTANCE
   }
   
  @@ -1197,24 +1221,26 @@
   
   #   ------------------------------------------------------------
   
  +#   when invoked without any parameter, artifically inject "bash" command as default
   if [ $# -eq 0 ]; then
       set -- bash
   fi
   
  +#   extract command parameter
   cmd="$1"
   shift
   
  -# create a unique id
  +#   create a unique id for unique temporary files
   GUID=".`date +%Y%m%d%H%M%S`-$$"
   
  -# make sure environment is set up
  +#   make sure environment is set up
   [ ".${OPENPKG_INST}" = . ] && die "OPENPKG_INST is not set";
  -[ ".${OPENPKG_WILD}" = . ] && echo "OPENPKG_WILD is not set";
  +[ ".${OPENPKG_WILD}" = . ] && die "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";
   
  -# handle command
  +#   handle command
   case ${cmd} in
       bash    | ba* ) cmd="bash"    ;;
       branch  | br* ) cmd="branch"  ;;
  @@ .
______________________________________________________________________
The OpenPKG Project                                    www.openpkg.org
CVS Repository Commit List                     [EMAIL PROTECTED]

Reply via email to