bin/mdw-build, bin/mdw-sbuild, bin/mdw-sbuild-server: Additional packages.
[profile] / bin / mdw-sbuild
index 5630dab..2fd31ff 100755 (executable)
@@ -34,8 +34,8 @@ 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
+while getopts "haik:np:t:" opt; do
   case $opt in
     h)
       usage
@@ -47,6 +47,7 @@ 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.
 EOF
       exit 0
@@ -55,6 +56,7 @@ 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" ;;
     *) bogusp=t ;;
   esac
@@ -66,6 +68,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.
@@ -94,6 +97,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/" ./