| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #!/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.
- SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
- TOOLS_DIR=$SCRIPT_DIR/tools
- 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
- # 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="build.cake"
- TARGET="Default"
- CONFIGURATION="Release"
- PLATFORM="Any CPU"
- VERBOSITY="verbose"
- DRYRUN=
- SKIP_TESTS=
- SHOW_VERSION=false
- SCRIPT_ARGUMENTS=()
- # Parse arguments.
- for i in "$@"; do
- case $1 in
- -s|--script) SCRIPT="$2"; shift ;;
- -t|--target) TARGET="$2"; shift ;;
- -p|--platform) PLATFORM="$2"; shift ;;
- -c|--configuration) CONFIGURATION="$2"; shift ;;
- --skip-tests) SKIP_TESTS="-skip-tests"; shift ;;
- -v|--verbosity) VERBOSITY="$2"; shift ;;
- -d|--dryrun) DRYRUN="-dryrun" ;;
- --version) SHOW_VERSION=true ;;
- --) shift; SCRIPT_ARGUMENTS+=("$@"); break ;;
- *) SCRIPT_ARGUMENTS+=("$1") ;;
- esac
- shift
- done
- # Make sure the tools folder exist.
- if [ ! -d "$TOOLS_DIR" ]; then
- mkdir "$TOOLS_DIR"
- fi
- # Make sure that packages.config exist.
- if [ ! -f "$TOOLS_DIR/packages.config" ]; then
- echo "Downloading packages.config..."
- curl -Lsfo "$TOOLS_DIR/packages.config" http://cakebuild.net/download/bootstrapper/packages
- if [ $? -ne 0 ]; then
- echo "An error occured while downloading packages.config."
- exit 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 occured while downloading nuget.exe."
- exit 1
- 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 . | xargs rm -rf
- fi
- mono "$NUGET_EXE" install -ExcludeVersion
- if [ $? -ne 0 ]; then
- echo "Could not restore NuGet packages."
- exit 1
- fi
- $MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' >| $PACKAGES_CONFIG_MD5
- popd >/dev/null
- # Make sure that Cake has been installed.
- if [ ! -f "$CAKE_EXE" ]; then
- echo "Could not find Cake.exe at '$CAKE_EXE'."
- exit 1
- fi
- # Start Cake
- if $SHOW_VERSION; then
- exec mono "$CAKE_EXE" -version
- else
- exec mono "$CAKE_EXE" $SCRIPT -verbosity=$VERBOSITY -platform="$PLATFORM" -configuration="$CONFIGURATION" -target=$TARGET $DRYRUN $SKIP_TESTS "${SCRIPT_ARGUMENTS[@]}"
- fi
|