summaryrefslogtreecommitdiff
path: root/.gitlab/darwin-init.sh
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab/darwin-init.sh')
-rw-r--r--.gitlab/darwin-init.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/.gitlab/darwin-init.sh b/.gitlab/darwin-init.sh
new file mode 100644
index 0000000000..ba5de9db35
--- /dev/null
+++ b/.gitlab/darwin-init.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+set -e
+
+toolchain=`pwd`/toolchain
+PATH="$toolchain/bin:$PATH"
+
+if [ -d "`pwd`/cabal-cache" ]; then
+ cp -Rf cabal-cache $HOME/.cabal
+fi
+
+if [ ! -e $toolchain/bin/ghc ]; then
+ mkdir -p tmp
+ cd tmp
+ ghc_tarball="https://downloads.haskell.org/~ghc/$GHC_VERSION/ghc-$GHC_VERSION-x86_64-apple-darwin.tar.xz"
+ echo "Fetching GHC from $ghc_tarball"
+ curl $ghc_tarball | tar -xJ
+ cd ghc-$GHC_VERSION
+ ./configure --prefix=$toolchain
+ make install
+ cd ../..
+ rm -Rf tmp
+fi
+
+if [ ! -e $toolchain/bin/cabal ]; then
+ cabal_tarball="https://downloads.haskell.org/~cabal/cabal-install-latest/cabal-install-2.4.1.0-x86_64-apple-darwin-sierra.tar.xz"
+ echo "Fetching cabal-install from $cabal_tarball"
+ curl $cabal_tarball | tar -xz
+ mv cabal $toolchain/bin
+fi
+
+if [ ! -e $toolchain/bin/happy ]; then
+ cabal update
+ cabal new-install happy --symlink-bindir=$toolchain/bin
+fi
+
+if [ ! -e $toolchain/bin/alex ]; then
+ cabal update
+ cabal new-install alex --symlink-bindir=$toolchain/bin
+fi
+