summaryrefslogtreecommitdiffstats
path: root/misc/pushpkgs
blob: d8be2f31c9cdff95e6ccf847a0a1aca7a1fb4a94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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