Skip to content

Commit e8d5d6d

Browse files
committed
(build) Update to latest Posix Bootstrapper
1 parent 1ddc56f commit e8d5d6d

File tree

1 file changed

+124
-0
lines changed

1 file changed

+124
-0
lines changed

build.sh

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
#!/usr/bin/env bash
2+
3+
##########################################################################
4+
# This is the Cake bootstrapper script for Linux and OS X.
5+
# This file was downloaded from https://github.com/cake-build/resources
6+
# Feel free to change this file to fit your needs.
7+
##########################################################################
8+
9+
# Define directories.
10+
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
11+
TOOLS_DIR=$SCRIPT_DIR/tools
12+
ADDINS_DIR=$TOOLS_DIR/Addins
13+
MODULES_DIR=$TOOLS_DIR/Modules
14+
NUGET_EXE=$TOOLS_DIR/nuget.exe
15+
CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe
16+
PACKAGES_CONFIG=$TOOLS_DIR/packages.config
17+
PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum
18+
ADDINS_PACKAGES_CONFIG=$ADDINS_DIR/packages.config
19+
MODULES_PACKAGES_CONFIG=$MODULES_DIR/packages.config
20+
21+
# Define md5sum or md5 depending on Linux/OSX
22+
MD5_EXE=
23+
if [[ "$(uname -s)" == "Darwin" ]]; then
24+
MD5_EXE="md5 -r"
25+
else
26+
MD5_EXE="md5sum"
27+
fi
28+
29+
# Define default arguments.
30+
SCRIPT="recipe.cake"
31+
CAKE_ARGUMENTS=()
32+
33+
# Parse arguments.
34+
for i in "$@"; do
35+
case $1 in
36+
-s | --script)
37+
SCRIPT="$2"
38+
shift
39+
;;
40+
--)
41+
shift
42+
CAKE_ARGUMENTS+=("$@")
43+
break
44+
;;
45+
*) CAKE_ARGUMENTS+=("$1") ;;
46+
esac
47+
shift
48+
done
49+
50+
# Make sure the tools folder exist.
51+
if [ ! -d "$TOOLS_DIR" ]; then
52+
mkdir "$TOOLS_DIR"
53+
fi
54+
55+
# Make sure that packages.config exist.
56+
if [ ! -f "$TOOLS_DIR/packages.config" ]; then
57+
echo "Downloading packages.config..."
58+
curl -Lsfo "$TOOLS_DIR/packages.config" https://cakebuild.net/download/bootstrapper/packages
59+
if [ $? -ne 0 ]; then
60+
echo "An error occurred while downloading packages.config."
61+
exit 1
62+
fi
63+
fi
64+
65+
# Download NuGet if it does not exist.
66+
if [ ! -f "$NUGET_EXE" ]; then
67+
echo "Downloading NuGet..."
68+
curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
69+
if [ $? -ne 0 ]; then
70+
echo "An error occurred while downloading nuget.exe."
71+
exit 1
72+
fi
73+
fi
74+
75+
# Restore tools from NuGet.
76+
pushd "$TOOLS_DIR" >/dev/null
77+
if [ ! -f "$PACKAGES_CONFIG_MD5" ] || [ "$(cat "$PACKAGES_CONFIG_MD5" | sed 's/\r$//')" != "$($MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }')" ]; then
78+
find . -type d ! -name . ! -name 'Cake.Bakery' | xargs rm -rf
79+
fi
80+
81+
mono "$NUGET_EXE" install -ExcludeVersion
82+
if [ $? -ne 0 ]; then
83+
echo "Could not restore NuGet tools."
84+
exit 1
85+
fi
86+
87+
$MD5_EXE "$PACKAGES_CONFIG" | awk '{ print $1 }' >|"$PACKAGES_CONFIG_MD5"
88+
89+
popd >/dev/null
90+
91+
# Restore addins from NuGet.
92+
if [ -f "$ADDINS_PACKAGES_CONFIG" ]; then
93+
pushd "$ADDINS_DIR" >/dev/null
94+
95+
mono "$NUGET_EXE" install -ExcludeVersion
96+
if [ $? -ne 0 ]; then
97+
echo "Could not restore NuGet addins."
98+
exit 1
99+
fi
100+
101+
popd >/dev/null
102+
fi
103+
104+
# Restore modules from NuGet.
105+
if [ -f "$MODULES_PACKAGES_CONFIG" ]; then
106+
pushd "$MODULES_DIR" >/dev/null
107+
108+
mono "$NUGET_EXE" install -ExcludeVersion
109+
if [ $? -ne 0 ]; then
110+
echo "Could not restore NuGet modules."
111+
exit 1
112+
fi
113+
114+
popd >/dev/null
115+
fi
116+
117+
# Make sure that Cake has been installed.
118+
if [ ! -f "$CAKE_EXE" ]; then
119+
echo "Could not find Cake.exe at '$CAKE_EXE'."
120+
exit 1
121+
fi
122+
123+
# Start Cake
124+
exec mono "$CAKE_EXE" $SCRIPT "${CAKE_ARGUMENTS[@]}"

0 commit comments

Comments
 (0)