From 11279e5f6a29d1b1d8061ab69deab0f4a977b891 Mon Sep 17 00:00:00 2001
From: Aaron Griffin <aaronmgriffin@gmail.com>
Date: Thu, 22 May 2008 17:22:12 -0400
Subject: Add a script to generate source tarballs for GPL compliance

This may need to be moved out of here later /me shrugs

Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
---
 misc-scripts/make-sourceball | 107 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)
 create mode 100755 misc-scripts/make-sourceball

(limited to 'misc-scripts')

diff --git a/misc-scripts/make-sourceball b/misc-scripts/make-sourceball
new file mode 100755
index 0000000..c4eb459
--- /dev/null
+++ b/misc-scripts/make-sourceball
@@ -0,0 +1,107 @@
+#!/bin/bash
+
+if [ $# -ne 3 ]; then
+	echo "usage: $(basename $0) <packagename> <repo> <arch>"
+	exit 1
+fi
+
+if [ -f "/etc/makepkg.conf" ]; then
+	#Get some config info
+	. /etc/makepkg.conf
+else
+	echo "/etc/makepkg.conf does not exist!"
+	exit 1
+fi
+packagename="$1"
+reponame="$2"
+arch="$3"
+
+##### Arch specific stuff. TODO make this configurable #####
+srcpath="/home/aaron/public_html/sources/"
+svnpath="file:///home/svn-packages/$packagename/repos/$reponame-$arch"
+############################################################
+
+WORKDIR="/tmp/make-sourceball.$svnrepo.$UID"
+
+cleanup() {
+	# unlock
+	rm -rf "$WORKDIR"
+	[ "$1" ] && exit $1
+}
+
+ctrl_c() {
+	echo "Interrupted" >&2
+	cleanup 0
+}
+
+die() {
+	echo "$*" >&2
+	cleanup 1
+}
+
+##### Copied from makepkg #####
+
+strip_url() {
+    echo "$1" | sed 's|^.*://.*/||g'
+}
+
+create_srcpackage() {
+	echo "Creating source package..."
+	local comp_files="$BUILDSCRIPT"
+	echo "   Adding: $BUILDSCRIPT"
+    . $BUILDSCRIPT
+
+	if [ "$install" != "" ]; then
+		if [ -f $install ]; then
+			echo "   Adding: install script '$install'"
+			comp_files="$comp_files $install"
+		else
+			die "Install script '$install' not found."
+		fi
+	fi
+
+	if [ -f ChangeLog ]; then
+		echo "   Adding: ChangeLog"
+		comp_files="$comp_files ChangeLog"
+	fi
+
+	local i
+	for i in ${source[@]}; do
+        i="$(strip_url "$i")"
+		if [ -f $i ]; then
+			echo "   Adding: $i"
+			comp_files="$comp_files $i"
+		fi
+	done
+
+	local pkg_file="${pkgname}-${pkgver}-${pkgrel}${SRCEXT}"
+
+	# tar it up
+	echo "Compressing source package"
+	if ! /usr/bin/bsdtar -czf "$pkg_file" $comp_files; then
+		die "Failed to create source package file."
+	fi
+
+    echo "Source package complete: $pkg_file"
+    if [ ! -d "$srcpath" ]; then
+        mkdir -p "$srcpath"
+    fi
+    cp $pkg_file "$srcpath"
+}
+
+trap ctrl_c 2
+trap cleanup 0
+
+/bin/mkdir -p "$WORKDIR"
+cd "$WORKDIR"
+
+echo "Creating Source tarball for $packagename ($reponame-$arch)"
+
+if /usr/bin/svn checkout -N $svnpath; then
+    cd "$reponame-$arch"
+    echo "Cheating with makepkg to download sources"
+    /usr/bin/makepkg -g || die "Error downloading files"
+    create_srcpackage
+else
+    die "Package '$packagename' does not exist in repo $reponame-$arch"
+fi
-- 
cgit v1.2.3-2-g168b