[--centos=distros]
[--upload]
[--concurrency=N]
- [--product=X]
EOF
exit $1
}
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
-
case $1 in
--debian=*)
- DEBIAN_DIST=$optarg
+ DEBIAN_DIST_A=$optarg
;;
--ubuntu=*)
- UBUNTU_DIST=$optarg
+ UBUNTU_DIST_A=$optarg
;;
--centos=*)
- CENTOS_DIST=$optarg
+ CENTOS_DIST_A=$optarg
;;
--upload)
upload=true
--concurrency=*)
concurrency=$optarg
;;
- --product=*)
- PRODUCT=$optarg
- ;;
-*)
do_help=yes
;;
- esac
+ esac
shift
done
+if test "$DEBIAN_DIST_A" -o "$UBUNTU_DIST_A" -o "$CENTOS_DIST_A"; then
+ DEBIAN_DIST=$DEBIAN_DIST_A
+ UBUNTU_DIST=$UBUNTU_DIST_A
+ CENTOS_DIST=$CENTOS_DIST_A
+fi
+
if test "$do_help" = "yes"; then
usage 1 1>&2
fi
exit 1
fi
-MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh
-if test ! -x $MKDEBSRC; then
- echo "$MKDEBSRC not found"
- exit 1
+if test "$CENTOS_DIST"; then
+ RNAME=`awk '/Name:/ {print $2}' *.spec`
+ echo "RNAME=$RNAME"
+ if test "$NAME" -a "$NAME" != "$RNAME"; then
+ echo "NAME in IDMETA ($NAME) does not match RPM spec NAME ($RNAME)"
+ exit 1
+ fi
+ PRODUCT=$RNAME
fi
-
-if $upload; then
- :
-else
- if $debian; then
+if $debian; then
+ DNAME=`awk '/Source:/ {print $2}' debian/control`
+ if test "$NAME" -a "$NAME" != "$DNAME"; then
+ echo "NAME in IDMETA ($NAME) does not match debian/control ($DNAME)"
+ exit 1
+ fi
+ PRODUCT=$DNAME
+ if ! $upload; then
+ MKDEBSRC=${ID_DEB_BUILD}/id-mk-deb-src.sh
+ if test ! -x $MKDEBSRC; then
+ echo "$MKDEBSRC not found"
+ exit 1
+ fi
+ DCH=debian/changelog
+ if ! git ls-files $DCH --error-unmatch >/dev/null 2>&1; then
+ rm -f $DCH
+ echo "${DNAME} (${VERSION}-1.indexdata) unstable; urgency=medium" >$DCH
+ echo '' >>$DCH
+ echo ' * Upstream.' >>$DCH
+ echo '' >>$DCH
+ echo " -- `git config --get user.name` <`git config --get user.email`> `date -R`" >>$DCH
+ echo '' >>$DCH
+ fi
if test "${SUDO_USER}"; then
if test ! -d deb-src; then
$MKDEBSRC
echo "deb-src could not be removed. Remove deb-src manually"
exit 1
fi
+ rm -f deb-src/*.dsc
fi
$MKDEBSRC
fi
- else
- mkdir -p deb-src
fi
+else
+ mkdir -p deb-src
fi
cd deb-src
fi
fi
-if test -z "$PRODUCT"; then
- PRODUCT=$NAME
-fi
-if test -z "$PRODUCT"; then
- if $debian; then
- PRODUCT=`echo *.dsc|sed 's/_.*//g'`
- else
- PRODUCT=`cd ..;rpm -q --specfile *.spec --queryformat "%{NAME};" | cut -d ";" -f1`
- fi
-fi
-echo "Dsc $PKG . Product $PRODUCT"
+echo "Product: $PRODUCT"
echo "Ubuntu distros: $UBUNTU_DIST"
echo "Debian distros: $DEBIAN_DIST"
echo "Centos distros: $CENTOS_DIST"
fi
if test ! -f ${HOME_EXPORT}/.pbuilderrc; then
echo "${HOME_EXPORT}/.pbuilderrc missing"
+ echo "You may need to run: ln -s ~/proj/git-tools/id-deb-build/pbuilderrc ~/.pbuilderrc"
exit 1
fi
fi
for dist in ${CENTOS_DIST}; do
arch=amd64
prodver=${PRODUCT}-${VERSION}
- if scp ${ID_DEB_BUILD}/../id-rpm-build/upload-rpms.sh ${dist}:rpmbuild/SOURCES/${prodver}/; then
- :
- else
+ if ! scp ${ID_DEB_BUILD}/../id-rpm-build/upload-rpms.sh ${dist}:rpmbuild/SOURCES/${prodver}/; then
echo "Copy of upload-rpms.sh to $dist failed"
exit 1
fi
fi
done
for dist in ${UBUNTU_DIST}; do
- scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist}
+ ssh ftp.indexdata.dk "mkdir -p /home/ftp/pub/${PRODUCT}/ubuntu/${dist}"
+ if ! scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist}; then
+ echo "Upload failed for $dist"
+ exit 1
+ fi
done
for dist in ${DEBIAN_DIST}; do
- scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/debian/${dist}
+ ssh ftp.indexdata.dk "mkdir -p /home/ftp/pub/${PRODUCT}/debian/${dist}"
+ if ! scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/debian/${dist}; then
+ echo "Upload failed for $dist"
+ exit 1
+ fi
done
- echo ""
- echo "===================================================="
- echo "Remember to update APT/YUM on ftp.indexdata.dk !!!"
- echo ""
- echo "ssh ftp.indexdata.dk"
- echo "cd ~/proj/git-tools/update-archive"
- echo "sudo su"
- echo "./update-archive.sh"
if test "${CENTOS_DIST}"; then
- echo "./update-yum-archive.sh"
+ if ! ssh ftp.indexdata.dk "sudo -n /home/indexdata/proj/git-tools/update-archive/update-yum-archive.sh"; then
+ echo "update-yum-archive.sh failed"
+ exit 1
+ fi
+ fi
+ if test "${UBUNTU_DIST}" -o "${DEBIAN_DIST}"; then
+ if ! ssh ftp.indexdata.dk "sudo -n /home/indexdata/proj/git-tools/update-archive/update-archive.sh --ubuntu=\"${UBUNTU_DIST}\" --debian=\"${DEBIAN_DIST}\""; then
+ echo "update-archive.sh failed"
+ exit 1
+ fi
fi
- echo "===================================================="
+ echo "Upload successful - we hope"
exit 0
fi