114 lines
3.1 KiB
Bash
Executable File
114 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
usage() {
|
|
echo "Usage: $0 GECKO_DIR GAIA_DIR MULET_TARBALL_URL"
|
|
}
|
|
|
|
if [ "$#" -ne 3 ]; then
|
|
usage
|
|
exit
|
|
fi
|
|
|
|
if [ -z $1 ] || [ ! -d $1 ]; then
|
|
usage
|
|
echo "First argument should be path to a gecko checkout"
|
|
exit
|
|
fi
|
|
GECKO_DIR=$1
|
|
|
|
if [ -z $2 ] || [ ! -d $2 ]; then
|
|
usage
|
|
echo "Second argument should be path to a gaia checkout"
|
|
exit
|
|
fi
|
|
GAIA_DIR=$2
|
|
|
|
url_re='^(http|https|ftp)://.*tar.bz2'
|
|
if [ -z $3 ] || ! [[ $3 =~ $url_re ]] ; then
|
|
usage
|
|
echo "Third argument should be URL to mulet tarball"
|
|
exit
|
|
fi
|
|
BUILD_URL=$3
|
|
|
|
set -ex
|
|
|
|
WORKDIR=simulator
|
|
SIM_DIR=$GECKO_DIR/b2g/simulator
|
|
|
|
if [[ $BUILD_URL =~ 'linux-x86_64' ]] ; then
|
|
PLATFORM=linux64
|
|
elif [[ $BUILD_URL =~ 'linux' ]] ; then
|
|
PLATFORM=linux
|
|
elif [[ $BUILD_URL =~ 'win32' ]] ; then
|
|
PLATFORM=win32
|
|
elif [[ $BUILD_URL =~ 'mac64' ]] ; then
|
|
PLATFORM=mac64
|
|
fi
|
|
if [ -z $PLATFORM ]; then
|
|
echo "Unable to compute platform out of mulet URL: $BUILD_URL"
|
|
exit
|
|
fi
|
|
echo "PLATFORM: $PLATFORM"
|
|
|
|
VERSION=$(sed -nE "s/MOZ_B2G_VERSION=([0-9]+\.[0-9]+).*prerelease/\1/p" $GECKO_DIR/b2g/confvars.sh)
|
|
re='^[0-9]\.[0-9]$'
|
|
if ! [[ $VERSION =~ $re ]] ; then
|
|
echo "Invalid b2g version: $VERSION"
|
|
exit
|
|
fi
|
|
echo "B2G VERSION: $VERSION"
|
|
|
|
mkdir -p $WORKDIR
|
|
|
|
if [ ! -f mulet.tar.bz2 ]; then
|
|
wget -O mulet.tar.bz2 $BUILD_URL
|
|
fi
|
|
(cd $WORKDIR/ && tar jxvf ../mulet.tar.bz2)
|
|
|
|
# Not sure it is still useful with mulet...
|
|
# remove useless stuff we don't want to ship in simulators
|
|
rm -rf $WORKDIR/firefox/gaia $WORKDIR/firefox/B2G.app/Contents/MacOS/gaia $WORKDIR/firefox/B2G.app/Contents/Resources/gaia
|
|
|
|
# Build a gaia profile specific to the simulator in order to:
|
|
# - disable the FTU
|
|
# - set custom prefs to enable devtools debugger server
|
|
# - set custom settings to disable lockscreen and screen timeout
|
|
# - only ship production apps
|
|
NOFTU=1 GAIA_APP_TARGET=production SETTINGS_PATH=$SIM_DIR/custom-settings.json make -j1 -C $GAIA_DIR profile
|
|
mv $GAIA_DIR/profile $WORKDIR/
|
|
cat $SIM_DIR/custom-prefs.js >> $WORKDIR/profile/user.js
|
|
|
|
APP_BUILDID=$(sed -n "s/BuildID=\([0-9]\{8\}\)/\1/p" $WORKDIR/firefox/application.ini)
|
|
echo "BUILDID $APP_BUILDID -- VERSION $VERSION"
|
|
|
|
XPI_NAME=fxos-simulator-$VERSION.$APP_BUILDID-$PLATFORM.xpi
|
|
ADDON_ID=fxos_$(echo $VERSION | sed "s/\./_/")_simulator@mozilla.org
|
|
ADDON_VERSION=$VERSION.$APP_BUILDID
|
|
ADDON_NAME="Firefox OS $VERSION Simulator"
|
|
ADDON_DESCRIPTION="a Firefox OS $VERSION Simulator"
|
|
|
|
echo "ADDON_ID: $ADDON_ID"
|
|
echo "ADDON_VERSION: $ADDON_VERSION"
|
|
|
|
FTP_ROOT_PATH=/pub/mozilla.org/labs/fxos-simulator
|
|
UPDATE_PATH=$VERSION/$PLATFORM
|
|
UPDATE_LINK=https://ftp.mozilla.org$FTP_ROOT_PATH/$UPDATE_PATH/$XPI_NAME
|
|
UPDATE_URL=https://ftp.mozilla.org$FTP_ROOT_PATH/$UPDATE_PATH/update.rdf
|
|
|
|
# Replace all template string in install.rdf
|
|
sed -e "s/@ADDON_VERSION@/$ADDON_VERSION/" \
|
|
-e "s/@ADDON_ID@/$ADDON_ID/" \
|
|
-e "s#@ADDON_UPDATE_URL@#$UPDATE_URL#" \
|
|
-e "s/@ADDON_NAME@/$ADDON_NAME/" \
|
|
-e "s/@ADDON_DESCRIPTION@/$ADDON_DESCRIPTION/" \
|
|
$SIM_DIR/install.rdf.in > $WORKDIR/install.rdf
|
|
|
|
# copy all useful addon file
|
|
cp $SIM_DIR/icon.png $WORKDIR/
|
|
cp $SIM_DIR/icon64.png $WORKDIR/
|
|
|
|
mkdir -p artifacts
|
|
(cd $WORKDIR && zip -r - .) > artifacts/$XPI_NAME
|
|
|