#!/bin/sh set -e PRG=$(basename "$0") showhelp() { cat <<EOF Usage: $PRG POOL [ DISTRIBUTION [ OTHERMIRROR] ] Examples: $PRG sid $PRG sid+mm sid 'deb http://debian-multimedia.org/ sid main' $PRG sid-ia32 sid --arch i386 EOF } exit1() { echo "ERROR: $1" exit 1 } ask() { echo -n "$1 (y/N)? " read response case "$response" in y|Y) : ;; *) return 1 ;; esac return } if [ $# -eq 0 ]; then showhelp exit1 "not enough parameters" fi pool= distro= while [ $# -gt 0 ]; do case $1 in -h|--help) showhelp exit 0 ;; --arch|-a) opts="$opts --debootstrapopts --arch --debootstrapopts $2" shift 2 ;; --*|-*) opts="$opts $1" shift ;; --) shift break ;; *) if [ -z "$pool" ]; then pool="$1" elif [ -z "$distro" ]; then distro="$1" else othermirrors="$othermirrors --othermirror \"$1\"" fi shift ;; esac done if [ -z "$distro" ]; then distro="$pool" fi basepath="/var/cache/pbuilder/cow-$pool" aptcache="/var/cache/pbuilder/aptcache-$pool/" buildresult="$HOME/src/pbuild-$pool/" makepaths='' for path in "$aptcache" "$buildresult"; do if [ ! -d "$path" ]; then echo "W: Needed path \"$path\" does not exist" makepaths='yes' fi done if [ "$makepaths" = 'yes' ]; then [ "$force" = 'yes' ] \ || ask 'Create the missing path(s)' \ || exit1 "Cannot continue without those missing paths" mkdir -p "$buildresult" sudo mkdir -p "$aptcache" fi if [ -d "$basepath" ]; then echo "W: Needed path \"$path\" already exists" [ "$force" = 'yes' ] \ || ask 'Remove the path' \ || exit1 "Cannot continue with that path already there" sudo rm -rf "$basepath" fi sudo cowbuilder --create \ --buildresult "$buildresult" \ --distribution "$distro" \ --basepath "$basepath" \ --aptcache "$aptcache" \ $othermirrors \ $opts $@