about summary refs log tree commit diff
path: root/pkgs/development/tools
diff options
context:
space:
mode:
authorWael M. Nasreddine <wael.nasreddine@gmail.com>2018-09-10 22:36:11 -0700
committerWael M. Nasreddine <wael.nasreddine@gmail.com>2018-09-29 13:33:00 -0700
commit86a5535b2fdb6fbb88ca83ba9d83851269241927 (patch)
tree052d759c6cc5bcbbcc74b64b7da8737ad9510603 /pkgs/development/tools
parent90b7b4a509799a7382b4fbc3d954c74c37f1c989 (diff)
downloadnixlib-86a5535b2fdb6fbb88ca83ba9d83851269241927.tar
nixlib-86a5535b2fdb6fbb88ca83ba9d83851269241927.tar.gz
nixlib-86a5535b2fdb6fbb88ca83ba9d83851269241927.tar.bz2
nixlib-86a5535b2fdb6fbb88ca83ba9d83851269241927.tar.lz
nixlib-86a5535b2fdb6fbb88ca83ba9d83851269241927.tar.xz
nixlib-86a5535b2fdb6fbb88ca83ba9d83851269241927.tar.zst
nixlib-86a5535b2fdb6fbb88ca83ba9d83851269241927.zip
bazel-watcher: init at 0.5.0
Diffstat (limited to 'pkgs/development/tools')
-rw-r--r--pkgs/development/tools/bazel-watcher/default.nix80
-rw-r--r--pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch19
2 files changed, 99 insertions, 0 deletions
diff --git a/pkgs/development/tools/bazel-watcher/default.nix b/pkgs/development/tools/bazel-watcher/default.nix
new file mode 100644
index 000000000000..bedb55ec3742
--- /dev/null
+++ b/pkgs/development/tools/bazel-watcher/default.nix
@@ -0,0 +1,80 @@
+{ buildBazelPackage
+, cacert
+, fetchFromGitHub
+, fetchpatch
+, git
+, go
+, stdenv
+}:
+
+buildBazelPackage rec {
+  name = "bazel-watcher-${version}";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "bazelbuild";
+    repo = "bazel-watcher";
+    rev = "v${version}";
+    sha256 = "1sis723hwax4dg0c28x20yj0hjli66q1ykcvjirgy57znz4iwlq9";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/bazelbuild/bazel-watcher/commit/4d5928eee3dd5843a1b55136d914b78fef7f25d0.patch";
+      sha256 = "0gxzcdqgifrmvznfy0p5nd11b39n2pwxcvpmhc6hxf85mwlxz7dg";
+    })
+
+    ./update-gazelle-fix-ssl.patch
+  ];
+
+  nativeBuildInputs = [ go git ];
+
+  bazelTarget = "//ibazel";
+
+  fetchAttrs = {
+    preBuild = ''
+      patchShebangs .
+
+      # tell rules_go to use the Go binary found in the PATH
+      sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
+
+      # tell rules_go to invoke GIT with custom CAINFO path
+      export GIT_SSL_CAINFO="${cacert}/etc/ssl/certs/ca-bundle.crt"
+    '';
+
+    preInstall = ''
+      # Remove the go_sdk (it's just a copy of the go derivation) and all
+      # references to it from the marker files. Bazel does not need to download
+      # this sdk because we have patched the WORKSPACE file to point to the one
+      # currently present in PATH. Without removing the go_sdk from the marker
+      # file, the hash of it will change anytime the Go derivation changes and
+      # that would lead to impurities in the marker files which would result in
+      # a different sha256 for the fetch phase.
+      rm -rf $bazelOut/external/{go_sdk,\@go_sdk.marker}
+      sed -e '/^FILE:@go_sdk.*/d' -i $bazelOut/external/\@*.marker
+    '';
+
+    sha256 = "1iyjvibvlwg980p7nizr6x5v31dyp4a344f0xn839x393583k59d";
+  };
+
+  buildAttrs = {
+    preBuild = ''
+      patchShebangs .
+
+      # tell rules_go to use the Go binary found in the PATH
+      sed -e 's:go_register_toolchains():go_register_toolchains(go_version = "host"):g' -i WORKSPACE
+    '';
+
+    installPhase = ''
+      install -Dm755 bazel-bin/ibazel/*_pure_stripped/ibazel $out/bin/ibazel
+    '';
+  };
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/bazelbuild/bazel-watcher;
+    description = "Tools for building Bazel targets when source files change.";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch b/pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch
new file mode 100644
index 000000000000..4cf69e9d1723
--- /dev/null
+++ b/pkgs/development/tools/bazel-watcher/update-gazelle-fix-ssl.patch
@@ -0,0 +1,19 @@
+diff --git a/WORKSPACE b/WORKSPACE
+index 4011d9b..d085ae8 100644
+--- a/WORKSPACE
++++ b/WORKSPACE
+@@ -52,11 +52,9 @@ http_archive(
+
+ http_archive(
+     name = "bazel_gazelle",
+-    sha256 = "c0a5739d12c6d05b6c1ad56f2200cb0b57c5a70e03ebd2f7b87ce88cabf09c7b",
+-    urls = [
+-        "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/0.14.0/bazel-gazelle-0.14.0.tar.gz",
+-        "https://github.com/bazelbuild/bazel-gazelle/releases/download/0.14.0/bazel-gazelle-0.14.0.tar.gz",
+-    ],
++    sha256 = "0600ea2daf98170211dc561fd348a8a9328c91eb6df66a381eaaf0bcd122e80b",
++    strip_prefix = "bazel-gazelle-b34f46af2f31ee0470e7364352c2376bcc10d079",
++    url = "https://github.com/bazelbuild/bazel-gazelle/archive/b34f46af2f31ee0470e7364352c2376bcc10d079.tar.gz",
+ )
+
+ load("@io_bazel_rules_go//go:def.bzl", "go_register_toolchains", "go_rules_dependencies")