#!/bin/bash
-# $Id$
COMMAND=$(basename $0)
DIRNAME=$(dirname $0)
default_url="http://localhost/mirror/"
-default_distro="f8"
-all_distros="fc4 fc6 f7 f8 centos5"
+default_distro="f14"
+all_distros="f12 f14 f16 f18 f20"
function check_distro () {
local distro=$1; shift
- if [ ! -d $DIRNAME/$distro ] ; then
+ if [ ! -d $DIRNAME/$distro/yum.repos.d ] ; then
echo "Distro $distro not supported - skipped"
return 1
fi
return 0
}
+function do_repo () {
+ local distro=$1; shift
+ sedargs="-e s,@MIRRORURL@,$URL,g"
+ [ -n "$GPGOFF" ] && sedargs="$sedargs -e "'s,gpgcheck\W*=\W*1,gpgcheck=0,'
+ sed $sedargs $DIRNAME/$distro/yum.repos.d/building.repo.in
+}
+
function do_init () {
local distro=$1; shift
repo=/etc/vservers/.distributions/$distro/yum.repos.d/building.repo
dir=/etc/vservers/.distributions/$distro/yum.repos.d/
if [ ! -d $dir ] ; then
[ -n "$VERBOSE" ] && echo Creating dir $dir
- mkdir -p -d $dir
+ mkdir -p $dir
fi
[ -n "$VERBOSE" ] && echo "Creating $repo"
- sed -e "s,@MIRRORURL@,$URL," < $DIRNAME/$distro/building.repo.in > $repo
+ do_repo $distro > $repo
+}
+
+function do_diff () {
+ local distro=$1; shift
+ repo=/etc/vservers/.distributions/$distro/yum.repos.d/building.repo
+ if [ ! -f $repo ] ; then
+ echo "Cannot find $repo"
+ else
+ would=/tmp/$COMMAND.$$
+ do_repo $distro > $would
+ echo "==================== DIFF for $distro" '(current <-> would be)'
+ diff $repo $would
+ rm $would
+ fi
}
function do_display () {
dir=/etc/vservers/.distributions/$distro/yum.repos.d/
if [ -d $dir ] ; then
echo "====================" Contents of $dir
- find $dir -name '*.repo' | xargs head --verbose --lines=1000
+ ls $dir/*.repo 2> /dev/null | xargs head --verbose --lines=1000
else
echo "====================" $dir does not exist
fi
}
-function do_clear () {
+function do_clean () {
local distro=$1; shift
repo=/etc/vservers/.distributions/$distro/yum.repos.d/building.repo
[ -n "$VERBOSE" ] && echo Removing $repo
echo "Usage $COMMAND [options] <command>"
echo " a help to manage the yum.repos.d template in /etc/vservers/.distributions/<distro>"
echo "Available commands"
+ echo " display: shows content (default if <command> is missing)"
+ echo " diff: shows diff between current and what init would do"
echo " init: creates /etc/vservers/.distributions/<distro>/yum.repos.d/building.repo"
- echo " default is to use mirror root at $default_url"
- echo " use -u URL to specify another location"
- echo " display: shows content"
echo " clean: removes building.repo"
echo " superclean: removes yum.repos.d altogether"
echo "Options"
+ echo " -u URL to specify another location"
+ echo " default is to use mirror root at $default_url"
echo " -f <distro> : defaults to $default_distro"
echo " -a : runs on all distros $all_distros"
+ echo " -0 : turns off gpgcheck"
echo " -v : verbose"
echo "Examples"
echo " $COMMAND -a display "
echo " $COMMAND -a superclean"
- echo " $COMMAND -a -u http://mirror.one-lab.org/ init"
+ echo " $COMMAND -a -u http://mirror.onelab.eu/ init"
echo " $COMMAND -a display"
exit 1
}
DISTROS=""
URL=""
VERBOSE=""
+GPGOFF=""
function main () {
- while getopts "u:f:av" opt; do
+ while getopts "u:f:a0v" opt; do
case $opt in
u) URL=$OPTARG ;;
f) DISTROS="$DISTROS $OPTARG" ;;
a) DISTROS="$DISTROS $all_distros" ;;
+ 0) GPGOFF=true ;;
v) VERBOSE=true ;;
*) usage ;;
esac
1)
action=$1; shift
case $action in
+ disp*) action=display ;;
init*) action=init ;;
- dis*) action=display ;;
- clea*) action=clear ;;
+ diff*) action=diff ;;
+ clea*) action=clean ;;
super*) action=superclean ;;
*) usage ;;
esac ;;