-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
(build) Updated linux build files to use .NET Core
- Loading branch information
1 parent
bac498c
commit 0dea9ed
Showing
4 changed files
with
57 additions
and
96 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -294,3 +294,4 @@ BuildArtifacts/ | |
*.dll | ||
*.hash | ||
docs/input/tasks/ | ||
.dotnet/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
DOTNET_VERSION=ANY | ||
CAKE_VERSION=0.33.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,117 +1,79 @@ | ||
#!/usr/bin/env bash | ||
|
||
########################################################################## | ||
# This is the Cake bootstrapper script for Linux and OS X. | ||
# This file was downloaded from https://github.com/cake-build/resources | ||
# Feel free to change this file to fit your needs. | ||
########################################################################## | ||
|
||
# Define directories. | ||
# Define variables | ||
SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd ) | ||
source $SCRIPT_DIR/build.config | ||
TOOLS_DIR=$SCRIPT_DIR/tools | ||
ADDINS_DIR=$TOOLS_DIR/Addins | ||
MODULES_DIR=$TOOLS_DIR/Modules | ||
NUGET_EXE=$TOOLS_DIR/nuget.exe | ||
CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe | ||
PACKAGES_CONFIG=$TOOLS_DIR/packages.config | ||
PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum | ||
ADDINS_PACKAGES_CONFIG=$ADDINS_DIR/packages.config | ||
MODULES_PACKAGES_CONFIG=$MODULES_DIR/packages.config | ||
|
||
# Define md5sum or md5 depending on Linux/OSX | ||
MD5_EXE= | ||
if [[ "$(uname -s)" == "Darwin" ]]; then | ||
MD5_EXE="md5 -r" | ||
else | ||
MD5_EXE="md5sum" | ||
fi | ||
|
||
# Define default arguments. | ||
SCRIPT="setup.cake" | ||
CAKE_ARGUMENTS=() | ||
|
||
# Parse arguments. | ||
for i in "$@"; do | ||
case $1 in | ||
-s|--script) SCRIPT="$2"; shift ;; | ||
--) shift; CAKE_ARGUMENTS+=("$@"); break ;; | ||
*) CAKE_ARGUMENTS+=("$1") ;; | ||
esac | ||
shift | ||
done | ||
CAKE_EXE=$TOOLS_DIR/dotnet-cake | ||
CAKE_PATH=$TOOLS_DIR/.store/cake.tool/$CAKE_VERSION | ||
DOTNET_EXE=$(which dotnet 2>/dev/null) | ||
INSTALL_NETCORE=0 | ||
|
||
# Make sure the tools folder exist. | ||
if [ ! -d "$TOOLS_DIR" ]; then | ||
mkdir "$TOOLS_DIR" | ||
if [ "$CAKE_VERSION" = "" ] || [ "$DOTNET_VERSION" = "" ]; then | ||
echo "An error occured while parsing Cake / .NET Core SDK version." | ||
exit 1 | ||
fi | ||
|
||
# Make sure that packages.config exist. | ||
if [ ! -f "$TOOLS_DIR/packages.config" ]; then | ||
echo "Downloading packages.config..." | ||
curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages | ||
if [ $? -ne 0 ]; then | ||
echo "An error occurred while downloading packages.config." | ||
exit 1 | ||
if [ "$DOTNET_EXE" = "" ]; then | ||
INSTALL_NETCORE=1 | ||
elif [ "$DOTNET_VERSION" != "ANY" ]; then | ||
DOTNET_INSTALLED_VERSION=$($DOTNET_EXE --version 2>&1) | ||
if [ "$DOTNET_VERSION" != "$DOTNET_INSTALLED_VERSION" ]; then | ||
$INSTALL_NETCORE=1 | ||
fi | ||
fi | ||
|
||
# Download NuGet if it does not exist. | ||
if [ ! -f "$NUGET_EXE" ]; then | ||
echo "Downloading NuGet..." | ||
curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe | ||
if [ $? -ne 0 ]; then | ||
echo "An error occurred while downloading nuget.exe." | ||
exit 1 | ||
if [ "$INSTALL_NETCORE" = "1" ]; then | ||
if [ ! -d "$SCRIPT_DIR/.dotnet" ]; then | ||
mkdir "$SCRIPT_DIR/.dotnet" | ||
fi | ||
fi | ||
|
||
# Restore tools from NuGet. | ||
pushd "$TOOLS_DIR" >/dev/null | ||
if [ ! -f "$PACKAGES_CONFIG_MD5" ] || [ "$( cat "$PACKAGES_CONFIG_MD5" | sed 's/\r$//' )" != "$( $MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' )" ]; then | ||
find . -type d ! -name . ! -name 'Cake.Bakery' | xargs rm -rf | ||
fi | ||
curl -Lsfo "$SCRIPT_DIR/.dotnet/dotnet-install.sh" https://dot.net/v1/dotnet-install.sh | ||
|
||
mono "$NUGET_EXE" install -ExcludeVersion | ||
if [ $? -ne 0 ]; then | ||
echo "Could not restore NuGet tools." | ||
exit 1 | ||
if [ "$DOTNET_VERSION" = "ANY" ]; then | ||
bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" --install-dir "$SCRIPT_DIR/.dotnet" --no-path | ||
else | ||
bash "$SCRIPT_DIR/.dotnet/dotnet-install.sh" --version $DOTNET_VERSION --install-dir "$SCRIPT_DIR/.dotnet" --no-path | ||
fi | ||
|
||
DOTNET_EXE="$SCRIPT_DIR/.dotnet/dotnet" | ||
export PATH="$SCRIPT_DIR/.dotnet:$PATH" | ||
export DOTNET_ROOT="$SCRIPT_DIR/.dotnet" | ||
elif [ -d "/opt/dotnet/sdk" ]; then # Fix for dotnet-cake not finding sdk version | ||
export DOTNET_ROOT="/opt/dotnet" | ||
fi | ||
|
||
$MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' >| "$PACKAGES_CONFIG_MD5" | ||
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 | ||
export DOTNET_CLI_TELEMETRY_OPTOUT=1 | ||
export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0 | ||
|
||
popd >/dev/null | ||
CAKE_INSTALLED_VERSION=$(dotnet-cake --version 2>&1) | ||
|
||
# Restore addins from NuGet. | ||
if [ -f "$ADDINS_PACKAGES_CONFIG" ]; then | ||
pushd "$ADDINS_DIR" >/dev/null | ||
if [ "$CAKE_VERSION" != "$CAKE_INSTALLED_VERSION" ]; then | ||
if [ ! -f "$CAKE_EXE" ] || [ ! -d "$CAKE_PATH" ]; then | ||
if [ -f "$CAKE_EXE" ]; then | ||
exec $DOTNET_EXE tool uninstall --tool-path $TOOLS_DIR Cake.Tool | ||
fi | ||
|
||
mono "$NUGET_EXE" install -ExcludeVersion | ||
if [ $? -ne 0 ]; then | ||
echo "Could not restore NuGet addins." | ||
exit 1 | ||
echo "Installing Cake $CAKE_VERSION..." | ||
exec $DOTNET_EXE tool install --tool-path $TOOLS_DIR --version $CAKE_VERSION Cake.Tool | ||
if [ $? -ne 0 ]; then | ||
echo "An error occured while installing Cake." | ||
exit 1 | ||
fi | ||
fi | ||
|
||
popd >/dev/null | ||
fi | ||
|
||
# Restore modules from NuGet. | ||
if [ -f "$MODULES_PACKAGES_CONFIG" ]; then | ||
pushd "$MODULES_DIR" >/dev/null | ||
|
||
mono "$NUGET_EXE" install -ExcludeVersion | ||
if [ $? -ne 0 ]; then | ||
echo "Could not restore NuGet modules." | ||
# Make sure that Cake has been installed. | ||
if [ ! -f "$CAKE_EXE" ]; then | ||
echo "Could not find Cake.exe at '$CAKE_EXE'." | ||
exit 1 | ||
fi | ||
|
||
popd >/dev/null | ||
else | ||
CAKE_EXE="dotnet-cake" | ||
fi | ||
|
||
# Make sure that Cake has been installed. | ||
if [ ! -f "$CAKE_EXE" ]; then | ||
echo "Could not find Cake.exe at '$CAKE_EXE'." | ||
exit 1 | ||
fi | ||
########################################################################### | ||
# RUN BUILD SCRIPT | ||
########################################################################### | ||
|
||
# Start Cake | ||
exec mono "$CAKE_EXE" $SCRIPT "${CAKE_ARGUMENTS[@]}" | ||
(exec "$CAKE_EXE" setup.cake --bootstrap) && (exec "$CAKE_EXE" setup.cake "$@") |
This file was deleted.
Oops, something went wrong.