mirror of https://github.com/roytam1/boc-uxp.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
4.5 KiB
149 lines
4.5 KiB
#!/bin/sh |
|
|
|
BINOC_SYSTEM=`uname | tr [:upper:] [:lower:]` |
|
BINOC_PYTHON=`which python2.7 2>/dev/null` |
|
BINOC_GIT=`which git 2>/dev/null` |
|
BINOC_CURL=`which curl 2>/dev/null` |
|
BINOC_PLATFORM=./platform |
|
BINOC_MACH=$BINOC_PLATFORM/mach |
|
BINOC_CONFIG_GUESS=`./platform/build/autoconf/config.guess` |
|
|
|
# ============================================================================= |
|
|
|
if [ -z "$BINOC_PYTHON" ]; then |
|
printf "We could not find Python 2.7 which is required for just about everything!\n" |
|
exit 1 |
|
fi |
|
|
|
# ============================================================================= |
|
|
|
# Determin the current OS |
|
# This will also be exported so it can be picked up by .mozconfig |
|
if [[ "$BINOC_SYSTEM" == "mingw32_nt-"* ]]; then |
|
BINOC_SYSTEM=windows |
|
|
|
if [ "$BINOC_CONFIG_GUESS" == "x86_64-pc-mingw32" ]; then |
|
BINOC_CONFIG_GUESS=win64 |
|
else |
|
BINOC_CONFIG_GUESS=win32 |
|
fi |
|
fi |
|
|
|
export BINOC_SYSTEM=$BINOC_SYSTEM |
|
export BINOC_CONFIG_GUESS=$BINOC_CONFIG_GUESS |
|
|
|
# ============================================================================= |
|
|
|
# Determin the git branches or commits for use in the .mozconfig objdir path |
|
# If there is no git or you aren't building in a git repository then the value |
|
# will be blank. This is ok. |
|
if [ -n "$BINOC_GIT" ]; then |
|
BINOC_COMM_BRANCH=`"${BINOC_GIT}" symbolic-ref --short HEAD 2>/dev/null | tr [:upper:] [:lower:]` |
|
BINOC_PLATFORM_BRANCH=`cd ${BINOC_PLATFORM} && "${BINOC_GIT}" symbolic-ref --short HEAD 2>/dev/null | tr [:upper:] [:lower:]` |
|
|
|
# if we don't have a comm branch then don't even bother |
|
if [ -n "$BINOC_COMM_BRANCH" ]; then |
|
# If we aren't on the tip of a branch try getting the platform commit short sha |
|
if [ -z "$BINOC_PLATFORM_BRANCH" ]; then |
|
BINOC_PLATFORM_BRANCH=`cd ${BINOC_PLATFORM} && "${BINOC_GIT}" rev-parse --short HEAD 2>/dev/null` |
|
fi |
|
|
|
# See if the platform branch or commit sha if not just forget it |
|
if [ -n "$BINOC_PLATFORM_BRANCH" ]; then |
|
export BINOC_GIT_BRANCH=$BINOC_COMM_BRANCH-$BINOC_PLATFORM_BRANCH |
|
fi |
|
fi |
|
fi |
|
|
|
# ============================================================================= |
|
|
|
# This will process the commands given to the stub. If there is no match then |
|
# just pass it to platform (real) mach |
|
if [ "$1" == "release" ]; then |
|
# We are going to assume you want to build, package, and generate a mar |
|
$BINOC_MACH build |
|
$BINOC_MACH package |
|
|
|
# Windows also generates an NSIS installer and that is required before mar |
|
if [ "$BINOC_SYSTEM" == "windows" ]; then |
|
$BINOC_MACH installer |
|
fi |
|
|
|
$BINOC_MACH mar |
|
elif [ "$1" == "localbuild" ]; then |
|
# This builds and stages the application in dist/MOZ_APP_NAME but does not |
|
# actually generate an archive or any of the other stuff |
|
$BINOC_MACH build |
|
$BINOC_MACH stage |
|
elif [[ "$1" == "superclobber" && -d "../.obj" ]]; then |
|
printf "Removing all object directories in ../.obj\n" |
|
rm -rf ../.obj/* |
|
elif [ "$1" == "version" ]; then |
|
# This will execute version2k.py and pass any remaining args to it |
|
$BINOC_PYTHON ./build/version2k.py ${@:2} |
|
elif [ "$1" == "checkout" ] && [ -n "$BINOC_GIT" ]; then |
|
printf "binoc-central:\n" |
|
|
|
if [ "$2" == "absolute-trunk" ] && [ "$COMM_BRANCH" != "trunk" ]; then |
|
"$BINOC_GIT" checkout TRUNK |
|
fi |
|
|
|
"$BINOC_GIT" pull |
|
|
|
if [ ! -f $BINOC_PLATFORM/CLOBBER ]; then |
|
"$BINOC_GIT" submodule init platform |
|
fi |
|
|
|
if [ "$2" == "absolute-trunk" ]; then |
|
printf "\nUnified XUL Platform:\n" |
|
|
|
cd $BINOC_PLATFORM |
|
|
|
if [ "$BINOC_PLATFORM_BRANCH" != "master" ]; then |
|
"$BINOC_GIT" checkout master |
|
fi |
|
|
|
"$BINOC_GIT" pull |
|
else |
|
"$BINOC_GIT" submodule update |
|
fi |
|
elif [ "$1" == "reset" ] && [ -n "$BINOC_GIT" ]; then |
|
if [ "$2" == "comm" ]; then |
|
printf "binoc-central:\n" |
|
"$BINOC_GIT" reset --hard |
|
elif [ "$2" == "platform" ]; then |
|
printf "Unified XUL Platform:\n" |
|
cd $BINOC_PLATFORM |
|
"$BINOC_GIT" reset --hard |
|
else |
|
printf "Reset what?\n" |
|
fi |
|
elif [ "$1" == "webpatch" ] && [ -n "$BINOC_GIT" ] && [ -n "$BINOC_CURL" ]; then |
|
if [ "$2" == "platform" ]; then |
|
printf "Unified XUL Platform:\n" |
|
cd $BINOC_PLATFORM |
|
elif [ "$2" == "comm" ]; then |
|
printf "binoc-central:\n" |
|
else |
|
printf "Patch what?\n" |
|
exit 1 |
|
fi |
|
|
|
if [ -z "$3" ]; then |
|
printf "Patch with what?" |
|
exit 1 |
|
else |
|
if [[ "$3" == *"github.com"* ]]; then |
|
_patch=$3.patch |
|
else |
|
_patch=$3 |
|
fi |
|
fi |
|
|
|
$BINOC_CURL -L $_patch | "$BINOC_GIT" apply --reject |
|
else |
|
# We don't know what the command is but real-mach might so just pass |
|
# all the args to it |
|
$BINOC_MACH $@ |
|
fi |
|
|
|
|