X-Git-Url: http://jsfdemo.indexdata.com/?a=blobdiff_plain;f=id-deb-build%2Fid-pbuild.sh;h=e53268e76fbea584a458e901acd938612d6ef8dc;hb=6e6bc76113aa5183986b671e7a79102c2f7cf31f;hp=78a9d5d64c92c5c2b3b61eee69212c70d4b98a31;hpb=4d54dad68634d1710a8f32b0c3a11026968eeb33;p=git-tools-moved-to-github.git diff --git a/id-deb-build/id-pbuild.sh b/id-deb-build/id-pbuild.sh index 78a9d5d..e53268e 100755 --- a/id-deb-build/id-pbuild.sh +++ b/id-deb-build/id-pbuild.sh @@ -13,7 +13,6 @@ Options: [--centos=distros] [--upload] [--concurrency=N] - [--product=X] EOF exit $1 } @@ -32,16 +31,15 @@ while test $# -gt 0; do -*=*) 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 @@ -49,16 +47,19 @@ while test $# -gt 0; do --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 @@ -77,16 +78,31 @@ if test ! -x $PBUILDROOT; then 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 + if ! ${ID_DEB_BUILD}/id-mk-deb-changelog.sh; then + echo "id-mk-deb-changelog.sh failed" + fi if test "${SUDO_USER}"; then if test ! -d deb-src; then $MKDEBSRC @@ -98,12 +114,13 @@ else 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 @@ -129,17 +146,7 @@ if $debian; then 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" @@ -156,6 +163,7 @@ if $debian; then 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 @@ -164,9 +172,7 @@ if $upload; then 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 @@ -178,17 +184,32 @@ if $upload; then 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 "APT/YUM should be updated via cron every 15 minutes " - echo " from July 11 2013 and later." - echo "No need to call update archive on kebab" - echo "====================================================" + if test "${CENTOS_DIST}"; then + 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 "Upload successful - we hope" exit 0 fi