#! /bin/sh PROJECT= CURRENT_DIST=oneiric DIST="$CURRENT_DIST" BASE=cdimage.ubuntu.com::cdimage RSYNC=false HTTP=false usage () { cat <&2; exit 2; } while :; do case $1 in --help) usage exit 0 ;; -f|--flavour) PROJECT="$2" if [ "$PROJECT" = ubuntu ]; then PROJECT= fi shift 2 ;; -d|--dist) DIST="$2" shift 2 ;; -a|--authenticated) BASE=antimony:cdimage/www/full shift ;; -r|--rsync) RSYNC=: shift ;; -h|--http) HTTP=: shift ;; --) shift; break ;; *) usage >&2; exit 2; esac done if $HTTP; then BASE="http://cdimage.ubuntu.com" fi PREFIX= if [ "$DIST" != "$CURRENT_DIST" ]; then PREFIX="$DIST/$PREFIX" fi case $1 in server) PREFIX="ubuntu-server/$PREFIX" ;; jeos) PREFIX="jeos/$PREFIX" ;; mid) PREFIX="ubuntu-mid/$PREFIX" ;; esac case $1 in live|desktop|mid) IMAGE_TYPE=${IMAGE_TYPE:-${PREFIX}daily-live} ;; dvd) IMAGE_TYPE=${IMAGE_TYPE:-${PREFIX}dvd} ;; *) IMAGE_TYPE=${IMAGE_TYPE:-${PREFIX}daily} ;; esac case $1 in mid) EXTENSION=img ;; *) EXTENSION=iso ;; esac case $1 in install|alternate|server|addon|serveraddon) ;; *) $HTTP || RSYNC=: ;; esac LOCAL="./${PROJECT:+$PROJECT-}$DIST-$1-$2" REMOTE="$BASE/${PROJECT:+$PROJECT/}$IMAGE_TYPE/current/$DIST-$1-$2" if $RSYNC; then ionice -c2 -n7 rsync -avP "$REMOTE.$EXTENSION" "$LOCAL.$EXTENSION" elif $HTTP; then wget -O "$LOCAL.$EXTENSION" "$REMOTE.$EXTENSION" else rsync -avP "$REMOTE.jigdo" "$LOCAL.jigdo" if [ "$PROJECT" ]; then sed -i "s/=$DIST-$1-$2/=$PROJECT-$DIST-$1-$2/g" "$LOCAL.jigdo" fi rsync -avP "$REMOTE.template" "$LOCAL.template" mkdir -p old EXISTING=false MOUNTS= do_mount () { mkdir -p "old/$1" MOUNTS="${MOUNTS:+$MOUNTS }$1" sudo mount -o loop,ro "$1" "old/$1" } cleanup () { trap - EXIT HUP INT QUIT TERM local mount for mount in $MOUNTS; do sudo umount "old/$mount" rmdir -p --ignore-fail-on-non-empty "old/$mount" done if $EXISTING; then rm -f "$LOCAL.iso.old" fi } trap cleanup EXIT HUP INT QUIT TERM if [ -e "$LOCAL.iso" ]; then EXISTING=: mv "$LOCAL.iso" "$LOCAL.iso.old" do_mount "$LOCAL.iso.old" fi for iso in *"$DIST"-*.iso; do case $iso in *-install-*|*-alternate-*|*-server-*|*-addon-*|*-serveraddon-*) ;; *) continue ;; esac do_mount "$iso" done ionice -c2 -n7 jigdo-lite --scan "$PWD/old" "$LOCAL.jigdo" fi