#!/bin/sh # Copyright (C) 2011 by Mike Gabriel # # This is free software; you can redistribute it and/or modify # it under the tBerms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the # Free Software Foundation, Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. # Thanks to Jonas Smedegaard for inspiration... set -e RELEASE="$1" test -n "$RELEASE" || { echo "usage: $(basename "$0") []"; exit 1; } CHECKOUT="${2:-master}" PROJECT="$(basename $PWD)" TARGETDIR=".." MANIFEST="$(mktemp)" TEMP_DIR="$(mktemp -d)" echo $MANIFEST trap "rm -f \"${MANIFEST}\"; rm -rf \"${TEMP_DIR}\"" 0 git clone . "$TEMP_DIR/${PROJECT}_$RELEASE" ( set -e; cd "$TEMP_DIR/${PROJECT}_$RELEASE/" && git checkout ${CHECKOUT} 2>/dev/null || true ) ( set -e; cd "$TEMP_DIR" && rm -Rf "${PROJECT}_$RELEASE/.git"* ) ( set -e; cd "$TEMP_DIR" && find "${PROJECT}_$RELEASE" -type f | sed 's/^\.*\/*//' | sort > "$MANIFEST" ) mkdir -p "$TARGETDIR/_releases_/source/${PROJECT}/" tar c -C "$TEMP_DIR" --owner 0 --group 0 --numeric-owner --no-recursion --files-from "$MANIFEST" | gzip -n > "$TARGETDIR/_releases_/source/${PROJECT}/${PROJECT}_$RELEASE.tar.gz"