diff options
Diffstat (limited to 'mach')
-rw-r--r-- | mach | 64 |
1 files changed, 64 insertions, 0 deletions
@@ -0,0 +1,64 @@ +#!/bin/sh + +MCP_MACH=./platform/mach +MCP_GIT=`which git 2>/dev/null` + +if [ ! -f "$MCP_MACH" ]; then + printf "Error: There is no platform codebase.\n" + exit 1 +fi + +MCP_APP=browser +MCP_APP_NAME=palemoon +MCP_VERSION=`cat ./$MCP_APP/config/version.txt` + +MCP_XZ=`which xz 2>/dev/null` +MCP_TAR_BASEDIR="s/^./$MCP_APP_NAME-source/" +MCP_TAR_FILENAME="$MCP_APP_NAME-$MCP_VERSION.source.tar.xz" +MCP_TAR_COMMAND="tar cfJv ../$MCP_TAR_FILENAME . --transform $MCP_TAR_BASEDIR --exclude-vcs --warning=no-file-changed" +MCP_TAR_EXCLUDES=( + "$MCP_APP/branding/beta" + "$MCP_APP/branding/unstable" + "platform/db/mork" + "platform/docs" + "platform/ldap" + "platform/libs/gmp-clearkey" + "platform/mailnews" + "platform/python/psutil/*.so" + "platform/python/psutil/*.pyd" + "platform/python/psutil/build" + "platform/xulrunner" + ".mozconfig" + ".gitattributes" + ".gitignore" + ".gitmodules" + "*.pyc" + "*.pyo" + "*.rej" + "*.orig" + "*.source.tar.xz" +) + +if [ "$1" == "source" ]; then + if [ -z "$MCP_XZ" ]; then + printf "Error: XZ was not found on the system. NOTE: This won't work on Windows.\n" + exit 1 + fi + + for _value in "${MCP_TAR_EXCLUDES[@]}"; do + MCP_TAR_COMMAND+=" --exclude=${_value}" + done + + if [[ -n "$MCP_GIT" && -d "./.git" && -d "./platform/.git" ]]; then + printf "COMM SHA1: `"${MCP_GIT}" rev-parse --short HEAD 2>/dev/null`\n" + printf "GRE SHA1: `cd ./platform && "${MCP_GIT}" rev-parse --short HEAD 2>/dev/null`\n" + fi + + printf "Source Filename: $MCP_TAR_FILENAME\n\n" + read -r -s -p $'Press enter to continue...\n' + env XZ_OPTS=-9e ${MCP_TAR_COMMAND} +else + # We don't know what the command is but real-mach might so just pass + # all the args to it + $MCP_MACH $@ +fi |