#!/bin/sh
 #
-# mbuild - make sbuild and reprepro work together
+# mbuild - automate builds with sbuild and dinstall the result
 #
 # Copyright (c) 2008 martin f. krafft <madduck@debian.org>
 # Released under the terms of the Artistic Licence 2.0.
 #
 set -eu
 
-BUNDLEDIR="$HOME/reprepro/bundles"
-REPREPRODIR="$HOME/reprepro"
+BUILDDIR="$(mktemp -dt mbuild.XXXXXXXX)"
+trap "cd / && rm -R '$BUILDDIR'" 0
 
-DINSTALL="reprepro --basedir $REPREPRODIR include \$dist"
+BUNDLE_DIR="$BUILDDIR"
+dinstall() {
+  echo "Would install into $1:"
+  for file in $(dcmd echo "$2"); do
+    echo "  $file"
+  done
+}
 
-GNUPGHOME="$REPREPRODIR/.gnupg"; export GNUPGHOME
-KEYID=330c4a75
+KEYID=
 
-DIR="$HOME/sbuild"
-cd "$DIR"
+MBUILDRCS="/etc/mbuild/rc $HOME/.mbuildrc $HOME/.mbuild/rc"
+for rc in $MBUILDRCS; do
+  [ -r "$rc" ] && . "$rc"
+done
+
+if [ -z "$KEYID" ]; then
+  echo "E: \$KEYID is not defined in rc file." >&2
+  exit 1
+fi
+
+cd "$BUILDDIR"
 
-sbuild_args=
+sbuild_args=--debug
 schangesfile=
 arch=
 dist=
 schangesfile_basename="${schangesfile##*/}"
 packagenameversion="${schangesfile_basename%_*}"
 
-builddir="$(mktemp -dp "$DIR" "${packagenameversion}.XXXXXXXX")"
-trap "rm -R '$builddir'" 0
-
 cd "${schangesfile%/*}"
-dcmd cp "${schangesfile##*/}" "$builddir"
+dcmd cp "${schangesfile##*/}" "$BUILDDIR"
 schangesfile="$schangesfile_basename"
 
-cd "$builddir"
+cd "$BUILDDIR"
 
 sbuild $sbuild_args --arch="$arch" --arch-all --dist="$dist" --keyid=$KEYID \
   "$packagenameversion".dsc
 
 changesfile="${packagenameversion}_${arch}.changes"
 
-eval $DINSTALL "$schangesfile"
-eval $DINSTALL "$changesfile"
+dinstall "$dist" "$schangesfile"
+dinstall "$dist" "$changesfile"
 
 mv "$changesfile" "${changesfile}.binonly"
 mergechanges "$schangesfile" "${changesfile}.binonly" > "$changesfile"
 rm "${changesfile}.binonly" "$schangesfile"
 
 bundle="$BUNDLEDIR/${packagenameversion}.bundle.tar"
-dcmd tar -chf "$bundle" "$changesfile"
+dcmd tar -cvhf "$bundle" "$changesfile"
 
-rm -r "$builddir"
+rm -r "$BUILDDIR"
 trap - 0
 
-echo "Bundle available at $bundle"
+echo "Bundle available at $bundle ."
+
+exit 0