diff options
Diffstat (limited to 'misc/pushpkgs')
-rwxr-xr-x | misc/pushpkgs | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/misc/pushpkgs b/misc/pushpkgs new file mode 100755 index 0000000..d8be2f3 --- /dev/null +++ b/misc/pushpkgs @@ -0,0 +1,59 @@ +#!/bin/sh + +prependid() +{ + sed -e '/^#/!{ + i\ +\# $Id$ + :loop + n + b loop + }' PKGBUILD >PKGBUILD.new + mv PKGBUILD.new PKGBUILD +} + +# Make sure that the package directories are added to the SVN repo. +svnadd() +{ + svn add --parents PKGBUILD ../repos + # Make sure that the Id keyword-property is active. + svn propset svn:keywords Id PKGBUILD +} + + +if [ -z "$REPODIR" ] +then + echo "Specify the destination directory with the REPODIR env var." 1>&2 + exit 1 +fi + +[ "$PKGDEST" ] || PKGDEST=~/pkg/dest + +cd "$PKGDEST" || exit $? +pkgdir=$(pwd) + +for pkg +do + if [ ! -d "$pkg" ] + then + echo "pkg/$pkg was not found." 1>&2 + continue + fi + + cd "$REPODIR" || exit 1 + svn update "$pkg" >/dev/null 2>&1 + if [ -d "$pkg" ] + then + rm -rf "$pkg/trunk/"* + fi + + mkdir -p "$pkg/"{trunk,repos} + cp -r -t "$pkg/trunk" "$PKGDEST/$pkg"/* + + cd "$pkg/trunk" + prependid + svnadd >/dev/null 2>&1 + echo "$REPODIR/$pkg" + + cd "$pkgdir" +done |