diff options
-rw-r--r-- | tupkg/client/communitypkg | 163 |
1 files changed, 105 insertions, 58 deletions
diff --git a/tupkg/client/communitypkg b/tupkg/client/communitypkg index 5073dcc..8579273 100644 --- a/tupkg/client/communitypkg +++ b/tupkg/client/communitypkg @@ -1,85 +1,132 @@ #!/bin/bash -source /etc/makepkg.conf +# Source makepkg.conf; fail if it is not found +if [ -r "/etc/makepkg.conf" ]; then + source "/etc/makepkg.conf" +else + echo "/etc/makepkg.conf not found!" + exit 1 +fi -#cmd=`basename $0` +# Source user-specific makepkg.conf overrides +if [ -r ~/.makepkg.conf ]; then + source ~/.makepkg.conf +fi -#if echo *.pkg.tar.gz | grep ' ' >/dev/null 2>&1; then -# echo "Too many packages in current dir" -# exit 1 -#fi -# -#if [ ! -f *.pkg.tar.gz ]; then -# echo "No package file" -# exit 1 -#fi -# -#pkgfile=`echo *.pkg.tar.gz` -#pkg=`echo *.pkg.tar.gz | rev | cut -d- -f 3- | rev` -#ver=`echo *.pkg.tar.gz | rev | cut -d- -f -2 | rev | sed 's/\.pkg\.tar\.gz//'` +cmd=`basename $0` if [ ! -f PKGBUILD ]; then - echo "No PKGBUILD file" - exit 1 + echo "No PKGBUILD file" + exit 1 +fi + +# define tags and staging areas based on architecture +if [ "$CARCH" = "i686" ]; then + currenttag='CURRENT' + testingtag='TESTING' + suffix='' +elif [ "$CARCH" = "x86_64" ]; then + currenttag='CURRENT-64' + testingtag='TESTING-64' + suffix='64' +else + echo "CARCH must be set to a recognized value!" + exit 1 fi source PKGBUILD -pkgfile=${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz +pkgfile=${pkgname}-${pkgver}-${pkgrel}-${CARCH}.pkg.tar.gz +oldstylepkgfile=${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz if [ ! -f $pkgfile ]; then - echo "File $pkgfile doesn't exist" - exit 1 + if [ -f $PKGDEST/$pkgfile ]; then + pkgfile=$PKGDEST/$pkgfile + oldstylepkgfile=$PKGDEST/$oldstylepkgfile + elif [ -f $oldstylepkgfile ]; then + pkgfile=$oldstylepkgfile + elif [ -f $PKGDEST/$oldstylepkgfile ]; then + pkgfile=$PKGDEST/$oldstylepkgfile + else + echo "File $pkgfile doesn't exist" + exit 1 + fi fi -repo="community" -tag="CURRENT" -#if [ "$cmd" == "extrapkg" ]; then -# repo="extra" -# tag="CURRENT" -#elif [ "$cmd" == "currentpkg" ]; then -# repo="current" -# tag="CURRENT" -#elif [ "$cmd" == "testingpkg" ]; then -# repo="testing" -# tag="TESTING" -#elif [ "$cmd" == "unstablepkg" ]; then -# repo="unstable" -# tag="CURRENT" -#fi +if [ "$cmd" == "extrapkg" ]; then + repo="extra" + tag="$currenttag" +elif [ "$cmd" == "corepkg" ]; then + repo="core" + tag="$currenttag" +elif [ "$cmd" == "testingpkg" ]; then + repo="testing" + tag="$testingtag" +elif [ "$cmd" == "unstablepkg" ]; then + repo="unstable" + tag="$currenttag" +elif [ "$cmd" == "communitypkg" ]; then + repo="community" + tag="$currenttag" +fi -#scp $pkgfile archlinux.org:/home/ftp/$repo/os/$CARCH -if [ ! -f ~/.tupkg ]; then - echo "Must configure tupkg via ~/.tupkg, cancelled" - exit 1 +# see if any limit options were passed, we'll send them to SCP +unset scpopts +if [ "$1" = "-l" ]; then + scpopts="$1 $2" + shift 2 +fi + +if [ "$repo" != "community" ]; then + # combine what we know into a variable (suffix defined based on $CARCH) + uploadto="staging/${repo}${suffix}/add/$(basename ${pkgfile})" + scp ${scpopts} "${pkgfile}" "archlinux.org:${uploadto}" + if [ "$(md5sum "${pkgfile}" | cut -d' ' -f1)" != "$(ssh archlinux.org md5sum "${uploadto}" | cut -d' ' -f1)" ]; then + echo "File got corrupted during upload, cancelled." + exit 1 + else + echo "File integrity okay." + fi +else + if [ ! -f ~/.tupkg ]; then + echo "Must configure tupkg via ~/.tupkg, cancelled" + exit 1 + fi + if [ "$(basename $pkgfile)" != "$(basename $oldstylepkgfile)" ]; then + echo "Renaming makepkg3 package for compatability" + mv $pkgfile $oldstylepkgfile + pkgfile=$oldstylepkgfile + fi + tupkg $pkgfile fi -tupkg $pkgfile if [ $? -ne 0 ]; then - echo "Cancelled" - exit 1 + echo "Cancelled" + exit 1 fi echo "===> Uploaded $pkgfile" if [ "$1" != "" ]; then -cvs commit -m "upgpkg: $pkgname $pkgver-$pkgrel -$1" > /dev/null -if [ $? -ne 0 ]; then - echo "Cancelled" - exit 1 -fi -echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel -$1\" message" + cvs commit -m "upgpkg: $pkgname $pkgver-$pkgrel + $1" > /dev/null + if [ $? -ne 0 ]; then + echo "Cancelled" + exit 1 + fi + echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel + $1\" message" else -cvs commit -m "upgpkg: $pkgname $pkgver-$pkgrel" > /dev/null -if [ $? -ne 0 ]; then - echo "Cancelled" - exit 1 -fi -echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel\" message" + cvs commit -m "upgpkg: $pkgname $pkgver-$pkgrel" > /dev/null + if [ $? -ne 0 ]; then + echo "Cancelled" + exit 1 + fi + echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel\" message" fi cvs tag -c -F -R $tag > /dev/null if [ $? -ne 0 ]; then - echo "Cancelled" - exit 1 + echo "Cancelled" + exit 1 fi echo "===> Tagged as $tag" + +# vim:ft=sh:ts=4:sw=4:et: |