Skip to content
Snippets Groups Projects
Select Git revision
  • Product/704-basicReporting
  • master default protected
  • gitkeep
  • dev protected
  • Issue/2353-dropShapeFix
  • Issue/2583-treeBug
  • Hotfix/2562-organizations
  • Issue/2464-invalidateMeta
  • Issue/2484-filterExtracted
  • Issue/2309-docs
  • Issue/2462-removeTraces
  • Hotfix/2459-EncodingPath
  • Hotfix/2452-linkedDeletion
  • Issue/2328-noFailOnLog
  • Issue/1792-newMetadataStructure
  • v2.5.2-Hotfix2365
  • Hotfix/2365-targetClassWorks
  • Issue/2269-niceKpiParser
  • Issue/2295-singleOrganizationFix
  • Issue/1953-owlImports
  • Hotfix/2087-efNet6
  • v2.9.0
  • v2.8.2
  • v2.8.1
  • v2.8.0
  • v2.7.2
  • v2.7.1
  • v2.7.0
  • v2.6.2
  • v2.6.1
  • v2.6.0
  • v2.5.3
  • v2.5.2
  • v2.5.1
  • v2.5.0
  • v2.4.1
  • v2.4.0
  • v2.3.0
  • v2.2.0
  • v2.1.0
  • v2.0.0
41 results

build.sh

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    build.sh 4.00 KiB
    #!/usr/bin/env bash
    
    #The MIT License (MIT)
    #
    #Copyright (c) 2014 - 2016 Patrik Svensson, Mattias Karlsson, Gary Ewan Park and contributors
    #
    #Permission is hereby granted, free of charge, to any person obtaining a copy of
    #this software and associated documentation files (the "Software"), to deal in
    #the Software without restriction, including without limitation the rights to
    #use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
    #the Software, and to permit persons to whom the Software is furnished to do so,
    #subject to the following conditions:
    #
    #The above copyright notice and this permission notice shall be included in all
    #copies or substantial portions of the Software.
    #
    #THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    #IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
    #FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
    #COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
    #IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
    #CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    
    ##########################################################################
    # 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"
    VERBOSITY="verbose"
    DRYRUN=
    SHOW_VERSION=false
    SCRIPT_ARGUMENTS=()
    
    # Parse arguments.
    for i in "$@"; do
        case $1 in
            -s|--script) SCRIPT="$2"; shift ;;
            -t|--target) TARGET="$2"; shift ;;
            -c|--configuration) CONFIGURATION="$2"; 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" https://cakebuild.net/download/bootstrapper/packages
        if [ $? -ne 0 ]; then
            echo "An error occurred 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 occurred 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 -configuration=$CONFIGURATION -target=$TARGET $DRYRUN "${SCRIPT_ARGUMENTS[@]}"
    fi