diff options
author | Joshua Ismael Haase Hernández <hahj87@gmail.com> | 2011-06-27 00:16:33 -0500 |
---|---|---|
committer | Joshua Ismael Haase Hernández <hahj87@gmail.com> | 2011-06-27 00:16:33 -0500 |
commit | 0097ea36511596b3de1947a2069d708079887058 (patch) | |
tree | d51c39b4742ede735a2ecf8fd8315a2f1c5cc6d2 /prmipsrelease | |
parent | 8e4aa31eb303dc0086e9a4f535efda9a6d3939e0 (diff) |
"first working prtools + fixes"
Diffstat (limited to 'prmipsrelease')
-rwxr-xr-x | prmipsrelease | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/prmipsrelease b/prmipsrelease new file mode 100755 index 0000000..cd4d4ba --- /dev/null +++ b/prmipsrelease @@ -0,0 +1,100 @@ +#!/bin/bash +# Lic: GPLv3+ +# Author: Nicolas Reynolds <fauno@kiwwwi.com.ar> +# Local release of mips64el packages + clean ABS sync +# Called by HOOKLOCALRELEASE + +# $1 repo +# $2+ packages + +source /etc/makepkg.conf +source /etc/libretools.conf +source /etc/libretools.d/prtools.conf + +usage() { + echo "$0 repo package1 [ package2 ... packageN ]" + echo + echo " release packages locally on ${PKGDEST}/stage3." + echo " and make a clean ABS sync " +} + +## +# usage : get_full_version( $epoch, $pkgver, $pkgrel ) +# return : full version spec, including epoch (if necessary), pkgver, pkgrel +## +get_full_version() { + if [[ $1 -eq 0 ]]; then + # zero epoch case, don't include it in version + echo $2-$3 + else + echo $1:$2-$3 + fi +} + +repo=$1; shift +repo-add ${PKGDEST}/stage3.db.tar.gz $@ + +# Get all needed sources +source PKGBUILD +fullver=$(get_full_version ${epoch:-0} ${pkgver} ${pkgrel}) +pkgbase=${pkgbase:-$pkgname[0]} + +msg "Adding packages to [stage3]..." +repo-add $@ +for name in ${pkgname[@]}; do + msg2 "${name} ${fullver}" + repo-add ${PKGDEST}/stage3.db.tar.gz ${PKGDEST}/${name}-${fullver}-*.pkg.tar.* +done + +# Copy PKGBUILD and sources + +msg "Adding clean source to $WORKDIR/abs/${CARCH}/$repo/$pkgbase" +dest_dir="$WORKDIR/abs/${CARCH}/$repo/$pkgbase" +mkdir -p ${dest_dir} >/dev/null +rm -rf ${dest_dir}/* #if package existed already there + +# Set target CARCH as it might be used within the PKGBUILD to select correct sources +eval $(grep '^CARCH=' "$copydir/etc/makepkg.conf") +export CARCH +source=($(. "PKGBUILD"; echo ${source[@]})) +cp --remove-destination "PKGBUILD" "${dest_dir}" || echo "copy 1" +for f in ${source[@]}; do + basef=$(echo $f | sed 's|::.*||' | sed 's|^.*://.*/||g') + if [ -f "$basef" ]; then + cp --remove-destination "$basef" "${dest_dir}" + fi +done + +( . PKGBUILD + for i in 'changelog' 'install'; do + filelist=$(sed -n "s/^[[:space:]]*$i=//p" PKGBUILD) + for file in $filelist; do + # evaluate any bash variables used + eval file=${file} + if [ -f "$file" ]; then + cp --remove-destination "$file" "${dest_dir}" + fi + done + done +) +# END add clean abs + +# Commit the changes + + pushd "$dest_dir" >/dev/null + + source "${dest_dir}/PKGBUILD" + epoch=${epoch:-0} + fullver=$(get_full_version ${epoch} ${pkgver} ${pkgrel}) + pkgbase=${pkgbase:-${pkgname[0]}} + + git add "${dest_dir}/." # add using .gitignore + + git commit -m "${pkgbase}-${fullver} ${repo}" >/dev/null && \ + msg2 "${pkgbase} ${fullver} ${repo}" + + popd >/dev/null + +# END commit + +exit $? |