163 lines
4.9 KiB
Bash
163 lines
4.9 KiB
Bash
|
#
|
||
|
# update.sh - Updates QiLinux sources
|
||
|
#
|
||
|
# Copyright (c) 2005-2007 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||
|
#
|
||
|
# This program is free software; you can redistribute it and/or modify
|
||
|
# it under the terms of the GNU General Public License as published by
|
||
|
# the Free Software Foundation; either version 2 of the License, or
|
||
|
# (at your option) any later version.
|
||
|
#
|
||
|
# This program is distributed in the hope that it will be useful,
|
||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
# GNU General Public License for more details.
|
||
|
|
||
|
. ./VERSION
|
||
|
. ./functions.inc.sh
|
||
|
. ./defs.inc.sh
|
||
|
|
||
|
tmpfile=`mktemp -q -t ${0##*/}.XXXXXXXX` ||
|
||
|
{ echo "${0##*/}: error: cannot create temporary files." >&2
|
||
|
{ (exit 1); exit 1; }; }
|
||
|
|
||
|
trap "rm -f $tmpfile" 0 1 2 5 15
|
||
|
|
||
|
copyleft="\
|
||
|
makedist boot CD creator (version $makedist_version)
|
||
|
Copyright (c) 2003-2007 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||
|
Copyright (c) 2003-2005 by Davide Madrisan <davide.madrisan@qilinux.it>
|
||
|
"
|
||
|
|
||
|
unset branch # can be 'stable', 'unstable', or 'devel'
|
||
|
makedist_me="${0##*/}"
|
||
|
|
||
|
function usage() {
|
||
|
echo "\
|
||
|
usage: $makedist_me [-y] [-u[=<opts>]] [-t target] branch
|
||
|
-u : download setup scripts and files and QiLinux packages
|
||
|
<opts> can be:
|
||
|
setup download the setup scripts and db files
|
||
|
rpms download only the RPM packages
|
||
|
srpms download only the SRPM packages
|
||
|
lists create packages lists for each media
|
||
|
all download setup scripts, db files, RPM, SRPM
|
||
|
|
||
|
i.e. $makedist_me -u stable
|
||
|
$makedist_me -u=setup,rpms stable
|
||
|
$makedist_me -u=setup devel
|
||
|
" >&2
|
||
|
}
|
||
|
|
||
|
#
|
||
|
# Main
|
||
|
#
|
||
|
|
||
|
|
||
|
while test -n "$1" ; do
|
||
|
case $1 in
|
||
|
-u) UPDATE=all ;;
|
||
|
-u=*) UPDATE="`echo $1 | sed s/.*=//`" ;;
|
||
|
-h) usage; exit ;;
|
||
|
-f) force_update=1 ;;
|
||
|
-F) force_noupdate=1 ;;
|
||
|
-v) echo "$copyleft"; exit ;;
|
||
|
*) if test -z $branch ; then branch=$1
|
||
|
fi ;;
|
||
|
esac
|
||
|
shift
|
||
|
done
|
||
|
|
||
|
#MAKEDIST_TARGET=distrocd
|
||
|
#echo $MAKEDIST_TARGET
|
||
|
#TARGETDIR=$TOPDIR/targets/$MAKEDIST_TARGET
|
||
|
#. $TARGETDIR/settings.inc
|
||
|
|
||
|
echo "Updating packages..."
|
||
|
echo " - download from : repository <$qilinux_ftp>"
|
||
|
unset update_dirs; update=$UPDATE
|
||
|
test -n "`echo $update | sed '/setup\|all/!d'`" &&
|
||
|
{ update_dirs="$UTILSDIR";
|
||
|
echo " - update setup files";
|
||
|
update=`echo $update | sed s/setup/@/`; }
|
||
|
test -n "`echo $update | sed 's/srpms//g;/rpms\|all/!d'`" &&
|
||
|
{ update_dirs="$update_dirs ${RPMDIR}${arch}";
|
||
|
update_content=true;
|
||
|
echo " - update RPM packages";
|
||
|
update=`echo $update | sed /[^s]*rpms/s/rpms/@/`; }
|
||
|
test -n "`echo $update | sed 's/[^s]rpms//g;/srpms\|all/!d'`" &&
|
||
|
{ update_dirs="$update_dirs $SRPMSDIR";
|
||
|
echo " - update SRPM packages";
|
||
|
update=`echo $update | sed s/srpms/@/`; }
|
||
|
test -n "`echo $update | sed '/lists\|all/!d'`" &&
|
||
|
{ update_lists="true";
|
||
|
echo " - update packages lists";
|
||
|
update=`echo $update | sed s/lists/@/`; }
|
||
|
# exit if an unknown option is found
|
||
|
test -n "`echo $update | sed 's/all//g;s/@//g;s/,//g'`" &&
|
||
|
{ echo "$makedist_me: syntax error in -u options" >&2
|
||
|
{ (exit 1); exit 1; }; }
|
||
|
|
||
|
case "$branch" in
|
||
|
stable) branch_dir="stable/current" ;;
|
||
|
unstable) branch_dir="unstable/current" ;;
|
||
|
devel) branch_dir="devel" ;;
|
||
|
*) echo "unknown branch ($branch)"
|
||
|
echo "valid choices are: 'stable', 'unstable', 'devel'"
|
||
|
exit 1 ;;
|
||
|
esac
|
||
|
|
||
|
#
|
||
|
# rsync_repository
|
||
|
#
|
||
|
# $1: source remote resource
|
||
|
# $2: destination dir
|
||
|
function rsync_repository() {
|
||
|
rsync -av --delete $1 $2 ||
|
||
|
{ echo "$makedist_me: rsync error $? downloading files from $1" >&2
|
||
|
{ (exit 1); exit 1; }; }
|
||
|
|
||
|
#$qilinux_ftp::ftpqilinux/$branch_dir/$rsync_suffix $local_dest/.. ||
|
||
|
|
||
|
}
|
||
|
|
||
|
# download the user required files from QiLinux repository
|
||
|
if test -n "$update_dirs"; then
|
||
|
echo "Downloading packages from the ftp repository ($branch_dir)..."
|
||
|
|
||
|
for local_dest in $update_dirs; do
|
||
|
mkdir -p $local_dest
|
||
|
|
||
|
unset mkcd_updates mkcd_private
|
||
|
|
||
|
case $local_dest in
|
||
|
*$arch*) rsync_suffix="RPMS/$arch"
|
||
|
[ "$branch" = "stable" ] && mkcd_updates="updates/$rsync_suffix"
|
||
|
;;
|
||
|
*noarch*) rsync_suffix="RPMS/noarch" ;;
|
||
|
*SRPMS*) rsync_suffix="SRPMS" ;;
|
||
|
*utils*) rsync_suffix="utils" ;;
|
||
|
esac
|
||
|
|
||
|
[ "$qilinux_ftp" ] &&
|
||
|
{
|
||
|
rsync_repository $qilinux_ftp::$qilinux_ftp_dir/$branch_dir/$rsync_suffix $local_dest/..
|
||
|
[ "$mkcd_updates" ] &&
|
||
|
{
|
||
|
[ -e $UPDATES_RPMDIR ] || mkdir -p $UPDATES_RPMDIR
|
||
|
echo "*** Syncing updates branch"
|
||
|
rsync_repository $qilinux_ftp::$qilinux_ftp_dir/$branch_dir/$mkcd_updates/.. $UPDATES_RPMDIR
|
||
|
}
|
||
|
}
|
||
|
|
||
|
[ "$qilinux_private_ftp_dir" ] &&
|
||
|
{
|
||
|
[ -e $PRIVATE_RPMDIR ] || mkdir -p $PRIVATE_RPMDIR
|
||
|
echo "*** Syncing private branch"
|
||
|
rsync_repository $qilinux_private_ftp::$qilinux_private_ftp_dir/$rsync_suffix/.. $PRIVATE_RPMDIR
|
||
|
}
|
||
|
done
|
||
|
fi
|
||
|
echo
|
||
|
exit 0
|