Search .pbuilderrc in calling users $HOME.
[git-tools-moved-to-github.git] / id-deb-build / id-pbuild.sh
index b9cd94d..10b6578 100755 (executable)
@@ -64,6 +64,18 @@ if test ! -x $PBUILDROOT; then
     exit 1
 fi
 
+MKDEBSRC=`dirname $0`/id-mk-deb-src.sh
+if test ! -x $MKDEBSRC; then
+    echo "$MKDEBSRC not found"
+    exit 1
+fi
+
+if test -d deb-src; then
+    cd deb-src
+else
+    $MKDEBSRC
+fi
+
 if test -d deb-src; then
     cd deb-src
 fi
@@ -93,6 +105,19 @@ fi
 echo "Dsc $PKG . Product $PRODUCT"
 echo "Ubuntu distros: $UBUNTU_DIST"
 echo "Debian distros: $DEBIAN_DIST"
+if test "${SUDO_USER}"; then
+    echo "Running as sudo."
+    echo "You can avoid it by adding the following in /etc/sudoers"
+    echo "${SUDO_USER} ALL=NOPASSWD: /home/${SUDO_USER}/proj/git-tools/id-deb-build/id-pbuild-root.sh"
+    HOME_EXPORT=/home/${SUDO_USER}
+else
+    HOME_EXPORT=$HOME
+fi
+if test ! -f ${HOME_EXPORT}/.pbuilderrc; then
+    echo "${HOME_EXPORT}/.pbuilderrc missing"
+    exit 1
+fi
+
 if $upload; then
     for dist in ${UBUNTU_DIST}; do
        scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist}
@@ -113,12 +138,19 @@ if $upload; then
 fi
 rm -f *.log
 
+# call our privileged wrapper to clean the directories, no --dsc option
+for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
+    for arch in ${USE_ARCHS}; do
+       sudo -n $PBUILDROOT --home=${HOME_EXPORT} --dist=$dist --arch=$arch
+    done
+done
+
+# call our privileged wrapper to do the real work, with --dsc option
 i=0
 date
-
 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
     for arch in ${USE_ARCHS}; do
-       sudo -n $PBUILDROOT \
+       sudo -n $PBUILDROOT --home=${HOME_EXPORT} \
            --dist=$dist --arch=$arch --dsc=$PKG >${dist}-${arch}.log 2>&1 &
        i=`expr $i + 1`
        if test $i -eq $concurrency; then