summary refs log tree commit diff
path: root/third_party/bazel/rules_haskell/.netlify
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/bazel/rules_haskell/.netlify')
-rwxr-xr-xthird_party/bazel/rules_haskell/.netlify/build.sh28
-rwxr-xr-xthird_party/bazel/rules_haskell/.netlify/install.sh28
2 files changed, 56 insertions, 0 deletions
diff --git a/third_party/bazel/rules_haskell/.netlify/build.sh b/third_party/bazel/rules_haskell/.netlify/build.sh
new file mode 100755
index 000000000000..9cac684f6180
--- /dev/null
+++ b/third_party/bazel/rules_haskell/.netlify/build.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -eux
+
+export PATH=$HOME/bin:$PATH
+
+# XXX We don't want to be using the Nixpkgs CC toolchain, because
+# Nixpkgs is not available. But currently we can only override the
+# autoconfigured CC toolchain, not have several (which we would then
+# select via --extra_toolchains). So here's a gross hack that simply
+# patches out the nixpkgs_cc_configure() line.
+#
+# See https://github.com/bazelbuild/bazel/issues/6696.
+awk '
+  BEGIN {del=0}
+  /^nixpkgs_cc_configure\(/ {del=1}
+  del==0 {print}
+  /\)/ {del=0}' WORKSPACE > WORKSPACE.tmp
+  # Note: awk -i inplace not available
+mv WORKSPACE.tmp WORKSPACE
+
+# We don't want to be depending on Nixpkgs for documentation
+# generation either.
+sed -i 's/vendored_node = "@nixpkgs_nodejs"/vendored_node = None/' WORKSPACE
+
+bazel build //docs:api_html
+unzip -d public bazel-bin/docs/api_html-skydoc.zip
+cp start public
diff --git a/third_party/bazel/rules_haskell/.netlify/install.sh b/third_party/bazel/rules_haskell/.netlify/install.sh
new file mode 100755
index 000000000000..7d8e1483174b
--- /dev/null
+++ b/third_party/bazel/rules_haskell/.netlify/install.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+
+set -eux
+
+V=0.20.0
+
+curl -LO https://github.com/bazelbuild/bazel/releases/download/$V/bazel-$V-installer-linux-x86_64.sh
+chmod +x bazel-$V-installer-linux-x86_64.sh
+./bazel-$V-installer-linux-x86_64.sh --user
+
+# XXX: Hack to prevent the `haskell_nixpkgs_package_list` rule from crashing:
+# This rule expects a `nix-build` executable which is used to generate a
+# store-path containing an `all-haskell-packages.bzl` file which defines the
+# `package` list. Since actually installing `nix-build` on the netlify image
+# seems difficult, we provide a dummy shell script which does exactly that.
+packages_list=$(mktemp -d)
+cat <<EOF > $packages_list/all-haskell-packages.bzl
+packages = []
+EOF
+
+mkdir -p $HOME
+cat <<EOF > $HOME/bin/nix-build
+#!/usr/bin/env bash
+
+echo $packages_list
+EOF
+
+chmod +x $HOME/bin/nix-build