)
function mkfedora_usage() {
- echo "Usage: mkfedora [OPTION]... [basedir]"
- echo " -l url Fedora mirror location. Defaults to try:"
+ echo "Usage: pl_root_mkfedora [OPTION]... basedir"
+ echo " -l url Fedora mirror location. Default is to try:"
for mirror in "${mirrors[@]}" ; do
echo " $mirror"
done
function pl_root_mkfedora () {
- echo "* Entering pl_root_mkfedora " "$@"
+ echo "* Entering pl_root_mkfedora" "$@"
+
+ if [ $UID -ne 0 ] ; then
+ echo "Error: You must run this script as root."
+ exit 1
+ fi
# Verbosity
verbose=0
done
shift $(($OPTIND - 1))
- if [ ! -d "$1" ] ; then
- mkfedora_usage
- fi
-
- vroot=$(cd $1 && pwd -P)
-
- if [ $UID -ne 0 ] ; then
- echo "Error: You must run this script as root."
- exit 1
- fi
+ [[ -n "$@" ]] || mkfedora_usage
+ vroot=$1 ; shift
+ vroot=$(cd $vroot && pwd -P)
+ [[ -z "$@" ]] || mkfedora_usage
+ [ -d $vroot ] || mkfedora_usage
function mkfedora_fetch ()
{
options="$@"
pl_root_makedevs $root
- pl_root_mkfedora $root $options
+ pl_root_mkfedora $options $root
# Disable all services in reference image
chroot $root sh -c "/sbin/chkconfig --list | awk '{ print \$1 }' | xargs -i /sbin/chkconfig {} off"
return 0
fi
}
+
+# experimental
+function yumgroups_from_pkgs () {
+ groupname=$1; shift
+ groupdesc=$1; shift
+ pkgsfile=$1; shift
+ fcdistro=$pl_DISTRO_NAME
+ [[ -n "$@" ]] && fcdistro=$1; shift
+ if [[ -n "$@" ]] ; then
+ echo "yumgroups_from_pkgs : wrong signature"
+ return 1
+ fi
+
+ packages=$(pl_getPackages $fcdistro $pkgsfile)
+
+ cat <<__header
+<?xml version="1.0"?>
+<!DOCTYPE comps PUBLIC "-//Red Hat, Inc.//DTD Comps info//EN" "comps.dtd">
+<comps>
+ <group>
+ <id>$(echo $groupname|tr A-Z a-z)</id>
+ <name>$groupname</name>
+ <default>true</default>
+ <description>$groupdesc</description>
+ <uservisible>false</uservisible>
+ <packagelist>
+__header
+
+ for package in $packages; do
+ echo "<packagereq type=\"mandatory\">$package</packagereq>"
+ done
+
+cat <<__footer
+ </packagelist>
+ </group>
+</comps>
+__footer
+}
+
+function toplevel_yumgroups () {
+ pldistro=$1; shift
+ pkgsname=$1; shift
+ builddir=$(dirname $0)
+ pkgsfile=$(pl_locateDistroFile $builddir $pldistro $pkgsname)
+ yumgroups_from_pkgs 'PlanetLab' 'PlanetLab Node Root' $pkgsfile
+}
+