summaryrefslogtreecommitdiffstats
path: root/misc/pushpkgs
diff options
context:
space:
mode:
Diffstat (limited to 'misc/pushpkgs')
-rwxr-xr-xmisc/pushpkgs59
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