X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/bfdee8c36e31700e3c744c68489cc8de2c4e2c12..fe33bda7db1db4ae068a147e16ee70625e7844ad:/bin/mdw-sbuild diff --git a/bin/mdw-sbuild b/bin/mdw-sbuild index 5630dab..9a9a9d0 100755 --- a/bin/mdw-sbuild +++ b/bin/mdw-sbuild @@ -27,15 +27,15 @@ prog=${0##*/} fail () { echo >&2 "$prog: $*"; exit 1; } -usage () { echo "usage: $prog [-ain] [-k KEYID] [-t TARGET] HOST"; } +usage () { echo "usage: $prog [-ainT] [-k KEYID] [-p DIR] [-t TARGET] [-A DBPARGS] HOST"; } fail_usage () { usage >&2; exit 1; } ###-------------------------------------------------------------------------- ### Parse options. bogusp=nil noactp=nil signp=nil -unset buildopts -while getopts "haik:nt:" opt; do +unset buildopts pkgs dbpargs +while getopts "haik:np:t:A:T" opt; do case $opt in h) usage @@ -47,7 +47,10 @@ Options: -i Build only architecture-neutral packages. -k KEYID Sign the result using KEYID. -n Don't actually do the build. + -p DIR Upload additional packages from DIR. -t TARGET Build in TARGET build environment. + -A ARGS Pass ARGS to \`dpkg-buildpackage'. + -T Don't run the tests. EOF exit 0 ;; @@ -55,7 +58,13 @@ EOF i) buildopts="${buildopts+$buildopts }-i" ;; k) signp=t keyid=$OPTARG ;; n) buildopts="${buildopts+$buildopts }-n" noactp=t ;; + p) pkgs=$OPTARG ;; t) buildopts="${buildopts+$buildopts }-t$OPTARG" ;; + A) + buildopts="${buildopts+$buildopts }-A$OPTARG" + dbpargs="${dbpargs+$dbpargs }$OPTARG" + ;; + T) buildopts="${buildopts+$buildopts }-T" ;; *) bogusp=t ;; esac done @@ -66,6 +75,7 @@ case $# in esac case $bogusp in t) fail_usage ;; esac case $noactp in t) signp=nil ;; esac +case ${pkgs-/hack} in /*) ;; *) pkgs=$(pwd)/$pkgs ;; esac ###-------------------------------------------------------------------------- ### Main program. @@ -85,7 +95,7 @@ case ${ver+t} in t) ;; *) fail "can't figure out the package version" ;; esac ## Build a Debian source package. Don't sign anything yet. That will happen ## at the end, all in one go. -dpkg-buildpackage -S -uc -us +dpkg-buildpackage -S -uc -us -d -i $dbpargs cd .. dsc=${pkg}_${ver}.dsc [ -f "$dsc" ] || fail "where is my \`.dsc' file?" @@ -94,6 +104,7 @@ dsc=${pkg}_${ver}.dsc ## upload the sources, run the build, and collect the results. builddir=$(ssh "$host" mdw-sbuild-server dir "$pkg/$ver") dcmd rsync -a "$dsc" "$host:$builddir/" +case ${pkgs+t} in t) rsync -a "$pkgs/" "$host:$builddir/pkgs/" ;; esac set +e; ssh "$host" mdw-sbuild-server $buildopts build "$builddir" rc=$?; set -e rsync -a "$host:$builddir/" ./ @@ -109,3 +120,5 @@ rm $chchch case $signp in t) debsign -k"$keyid" "${pkg}_${ver}_multi.changes" ;; esac + +###----- That's all, folks --------------------------------------------------