#! /bin/sh PROJECT= CURRENT_DIST=maverick DIST="$CURRENT_DIST" BASE=antimony:cdimage/www/full 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|--anonymous) BASE=cdimage.ubuntu.com::cdimage 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 case $2 in hppa*|ia64*|lpia*|powerpc*|sparc*) PREFIX=ports/ ;; *) PREFIX= ;; esac 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|dvd) ;; *) $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" EXISTING=false if [ -e "$LOCAL.iso" ]; then EXISTING=: mv "$LOCAL.iso" "$LOCAL.iso.old" mkdir -p "old-$2" sudo mount -o loop "$LOCAL.iso.old" "old-$2" fi ionice -c2 -n7 jigdo-lite "$LOCAL.jigdo" if $EXISTING; then sudo umount "old-$2" || true rm -f "$LOCAL.iso.old" fi fi