cleanup how pkgs.py gets called, try to remove pl_parsePkgs and the like
authorThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 12 Jun 2012 09:51:14 +0000 (11:51 +0200)
committerThierry Parmentelat <thierry.parmentelat@sophia.inria.fr>
Tue, 12 Jun 2012 09:51:14 +0000 (11:51 +0200)
build.common
getpackages.sh [deleted file]
pkgs.py

index 20cfb7c..10741f6 100644 (file)
@@ -80,7 +80,7 @@ function pl_yumexclude () {
     type -p pkgs.py >& /dev/null || export PATH=$builddir:$PATH
 
     # parse it
-    pl_parsePkgs $keyword $fcdistro $pldistro $yumexclude_file || \
+    pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro $keyword $yumexclude_file || \
        { echo pl_yumexclude failed with fcdistro=$fcdistro and pldistro=$pldistro; return 1 ; }
 }
 
@@ -233,23 +233,23 @@ function pl_root_mkfedora () {
 
     # parse pkgsfile and add to local vars
     fcdistro=${pl_DISTRO_NAME}
-    pkgs_packages=$(pl_parsePkgs package $fcdistro $pldistro $pkgsfile) 
-    pkgs_groups=$(pl_parsePkgs group $fcdistro $pldistro $pkgsfile)
+    pkgs_packages=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro package $pkgsfile) 
+    pkgs_groups=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro group $pkgsfile)
     # what can get trashed to save space
-    pkgs_junk=$(pl_parsePkgs junk $fcdistro $pldistro $pkgsfile)
+    pkgs_junk=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro junk $pkgsfile)
     # but not this
-    pkgs_precious=$(pl_parsePkgs precious $fcdistro $pldistro $pkgsfile)
+    pkgs_precious=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro precious $pkgsfile)
     # formerly related to mkfedora -k : packages to take from our own build 
     # and thus need be excluded frem the stock repos
     # locate builddir by looking for pkgs.py
     builddir=$(dirname $(type -p pkgs.py))
     SUBST_NODEYUMEXCLUDE=$(pl_nodeyumexclude $fcdistro $pldistro $builddir)
-    pkgs_yumexclude=$(pl_parsePkgs yumexclude $fcdistro $pldistro $pkgsfile | sed -e s,@NODEYUMEXCLUDE@,"$SUBST_NODEYUMEXCLUDE",)
+    pkgs_yumexclude=$(pkgs.py -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro yumexclude $pkgsfile | sed -e s,@NODEYUMEXCLUDE@,"$SUBST_NODEYUMEXCLUDE",)
     # get mirrors if not specified with -l
     if [ -z "$mirrors" ] ; then
        mirrorsfile=$(pl_locateDistroFile ../build/ $pldistro "$pldistro.mirrors")
        # do not sort mirrors, keep order from input
-       mirrors=$(pl_parsePkgs -u mirror $fcdistro $pldistro $mirrorsfile)
+       mirrors=$(pkgs.py -u -a $pl_DISTRO_ARCH -f $fcdistro -p $pldistro mirror $mirrorsfile)
     fi
 
     yumexclude_line=""
@@ -545,6 +545,8 @@ function pl_fixdirs() {
 ########## .pkgs format
 # Usage: pl_parsePkgs keyword [-a arch] fcdistro pldistro pkgs-file[..s]
 # pkgs.py should be found in PATH, like this file build.common
+# only usage should be for pl_getPackages and pl_getGroups,
+# which in turn are usednow be in {node,slice}image/build.sh
 function pl_parsePkgs () {
     target_arch=$pl_DISTRO_ARCH
     keyword=$1;shift
@@ -559,45 +561,6 @@ function pl_parsePkgs () {
 function pl_getPackages() { pl_parsePkgs package "$@" ; }
 function pl_getGroups() { pl_parsePkgs group "$@" ; }
 
-##############################
-### temporary - only for checking the new python version
-# for a given keyword like 'package' :
-# we support fcdistro-dependant format, for tokens (pkgname) without whitespace
-# you can e.g. use
-# package: pkg1 .. pkgn 
-# package+f8: pkg1 .. pkgn
-# package-f8: pkg1 .. pkgn
-# 
-# values can contain @arch@, @fcdistro@ or @pldistro@ that are replaced with the current values
-#
-# the reason for the -a option is for when we build the build vm itself; in this case
-# pl_DISTRO_ARCH is the one we obtain from the root context, and that's wrong
-# specify -sa arch AFTER keyword, so as to keep pl_getPackages and pl_getGroups simple
-#
-function pl_parsePkgs_old () {
-
-    target_arch=$pl_DISTRO_ARCH
-    keyword=$1;shift
-    [ "$1" == "-a" ] && { shift; target_arch="$1"; shift; }
-    fcdistro=$1; shift
-    pldistro=$1; shift
-    # remaining arguments are paths to the pkgs files
-
-    # grab regular descriptions
-    all=$(grep -v '^#' "$@" | grep --regexp="^${keyword}:" | sed -e "s,${keyword}:,,")
-    # grab additions
-    add=$(grep -v '^#' "$@" | grep --regexp="^${keyword}+${fcdistro}:" | sed -e "s,${keyword}+${fcdistro}:,,")
-    # grab exclusions
-    sub=$(grep -v '^#' "$@" | grep --regexp="^${keyword}-${fcdistro}:" | sed -e "s,${keyword}-${fcdistro}:,,")
-
-    for rpm in $all $add; do
-       for exclude in $sub; do
-           [ "$rpm" = "$exclude" ] && continue 2
-       done
-       echo "${rpm} " | sed -e "s,@arch@,${target_arch},g" -e "s,@fcdistro@,$fcdistro,g" -e "s,@pldistro@,$pldistro,g"
-    done
-    return 0
-}
 ##############################
 
 # locates a pldistro-dependant file
diff --git a/getpackages.sh b/getpackages.sh
deleted file mode 100755 (executable)
index 7a385a3..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-. build.common
-
-function usage () {
-    echo "Usage: $0 pldistro rhdistro lstfiles"
-    exit 1
-}
-
-#[ "$#" = 1 ] || usage
-pldistro=$1; shift
-rhdistro=$1; shift
-lstfiles=$@
-
-function pkgs_from_lst () {
-    builddir=$1; shift
-    pldistro=$1; shift
-    rhdistro=$1; shift
-    lstfiles=$@
-
-    for lstfile in $lstfiles; do
-       pkgsfile=$(pl_locateDistroFile $builddir $pldistro $lstfile 2> /dev/null) 
-       packages=$(pl_getPackages $rhdistro $pldistro $pkgsfile)
-       echo $packages
-    done
-}
-
-pkgs_from_lst $(dirname $0) $pldistro $rhdistro $lstfiles
diff --git a/pkgs.py b/pkgs.py
index 220eb74..495369b 100755 (executable)
--- a/pkgs.py
+++ b/pkgs.py
@@ -185,7 +185,7 @@ def main ():
     usage="Usage: %prog [options] keyword input[...]"
     parser=OptionParser (usage=usage)
     parser.add_option ('-a','--arch',dest='arch',action='store',default=default_arch,
-                       help='target arch, e.g. i386 or x86_64')
+                       help='target arch, e.g. i386 or x86_64, default=%s'%default_arch)
     parser.add_option ('-f','--fcdistro',dest='fcdistro',action='store', default=default_fcdistro,
                        help='fcdistro, e.g. f12 or centos5')
     parser.add_option ('-d','--pldistro',dest='pldistro',action='store', default=default_pldistro,