2015-10-08 14:41:04 -07:00
#!/usr/bin/env bash
2015-10-22 15:12:49 -07:00
#
2015-11-16 11:21:57 -08:00
# Copyright (c) .NET Foundation and contributors. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
#
2015-12-18 01:39:50 +00:00
# Set OFFLINE environment variable to build offline
2015-10-21 15:21:14 -07:00
set -e
2015-10-22 15:56:12 -07:00
SOURCE = " ${ BASH_SOURCE [0] } "
while [ -h " $SOURCE " ] ; do # resolve $SOURCE until the file is no longer a symlink
DIR = " $( cd -P " $( dirname " $SOURCE " ) " && pwd ) "
SOURCE = " $( readlink " $SOURCE " ) "
2015-12-28 11:47:21 -08:00
[ [ " $SOURCE " != /* ] ] && SOURCE = " $DIR / $SOURCE " # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
2015-10-22 15:56:12 -07:00
done
DIR = " $( cd -P " $( dirname " $SOURCE " ) " && pwd ) "
2015-10-20 09:05:17 -07:00
2016-02-16 12:46:43 -08:00
# Some things depend on HOME and it may not be set. We should fix those things, but until then, we just patch a value in
if [ -z " $HOME " ] ; then
export HOME = $DIR /artifacts/home
[ ! -d " $HOME " ] || rm -Rf $HOME
mkdir -p $HOME
fi
2016-02-16 12:04:13 -08:00
while [ [ $# > 0 ] ] ; do
lowerI = " $( echo $1 | awk '{print tolower($0)}' ) "
case $lowerI in
-c| --configuration)
export CONFIGURATION = $2
shift
; ;
--nopackage)
export DOTNET_BUILD_SKIP_PACKAGING = 1
; ;
--docker)
export BUILD_IN_DOCKER = 1
export DOCKER_IMAGENAME = $2
shift
; ;
2016-02-16 12:37:47 -08:00
--skip-prereqs)
# Allow CI to disable prereqs check since the CI has the pre-reqs but not ldconfig it seems
export DOTNET_INSTALL_SKIP_PREREQS = 1
; ;
2016-02-16 12:22:25 -08:00
--help)
2016-02-16 12:37:47 -08:00
echo " Usage: $0 [--configuration <CONFIGURATION>] [--skip-prereqs] [--nopackage] [--docker <IMAGENAME>] [--help] <TARGETS...> "
2016-02-16 12:22:25 -08:00
echo ""
echo "Options:"
echo " --configuration <CONFIGURATION> Build the specified Configuration (Debug or Release, default: Debug)"
echo " --nopackage Skip packaging targets"
2016-02-16 12:37:47 -08:00
echo " --skip-prereqs Skip checks for pre-reqs in dotnet_install"
2016-02-16 12:22:25 -08:00
echo " --docker <IMAGENAME> Build in Docker using the Dockerfile located in scripts/docker/IMAGENAME"
echo " --help Display this help message"
echo " <TARGETS...> The build targets to run (Init, Compile, Publish, etc.; Default is a full build and publish)"
exit 0
; ;
2016-02-16 12:04:13 -08:00
*)
break
; ;
esac
shift
done
2016-02-02 10:04:50 -08:00
# Check if we need to build in docker
2015-11-10 16:18:00 -08:00
if [ ! -z " $BUILD_IN_DOCKER " ] ; then
2016-02-02 10:04:50 -08:00
$DIR /scripts/dockerbuild.sh " $@ "
2015-11-10 16:18:00 -08:00
else
2016-02-02 10:04:50 -08:00
$DIR /scripts/run-build.sh " $@ "
2016-01-07 18:50:00 -08:00
fi