summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/Packaging/Source/package.sh')
-rwxr-xr-xSwift/Packaging/Source/package.sh35
1 files changed, 33 insertions, 2 deletions
diff --git a/Swift/Packaging/Source/package.sh b/Swift/Packaging/Source/package.sh
index 4d229a6..3872b35 100755
--- a/Swift/Packaging/Source/package.sh
+++ b/Swift/Packaging/Source/package.sh
@@ -1,17 +1,31 @@
#!/bin/sh
## For a Swiften-only tarball, try
-## EXCLUDE_FOLDERS="Swift Sluift Swiftob Limber Slimber" ./package.sh
+## EXCLUDE_FOLDERS="Swift Sluift Limber Slimber" ./package.sh
+
+## This script will require GPG and a suitable signing key by default.
+## To disable tarball signature generation, pass the --nosign parameter to package.sh.
export PYTHONPATH=../../../BuildTools/SCons
VERSION=`../../../BuildTools/GetBuildVersion.py swift`
DIRNAME=swift-$VERSION
+FIRST_ARGUMENT=$1
if [ -z "$VERSION" ]; then
echo "Unable to determine version"
exit -1
fi
+if [ "`uname -s`" = "Darwin" ]; then
+ TAR=gtar
+ if ! $TAR --version >/dev/null 2>&1; then
+ echo "Unable to find GNU tar (coulnd't find $TAR)"
+ exit 1
+ fi
+else
+ TAR=tar
+fi
+
echo "Cleaning up old sources ..."
rm -rf swift-*
@@ -29,4 +43,21 @@ do
done
echo "Creating tarball ..."
-tar czf $DIRNAME.tar.gz $DIRNAME
+$TAR -czf $DIRNAME.tar.gz --owner=swift --group=swift $DIRNAME
+
+if [ "$FIRST_ARGUMENT" != "--nosign" ]; then
+ echo "Creating armored GPG signature ..."
+ which gpg
+ if [ $? -eq 0 ]; then
+ gpg --list-keys packages@swift.im
+ if [ $? -eq 0 ]; then
+ gpg --armor --default-key packages@swift.im --detach-sign $DIRNAME.tar.gz
+ else
+ echo "Key for packages@swift.im missing. Not signing tar archive."
+ exit 1
+ fi
+ else
+ echo "GPG not found. Not signing tar archive."
+ exit 1
+ fi
+fi \ No newline at end of file