about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2020-06-15T19·03+0100
committertazjin <mail@tazj.in>2020-06-15T19·08+0000
commit29bab159ab780ada20a4ae97956594ea13b38ab4 (patch)
tree253cf1b37f10a7b8afcee432e080e7ce3bf4abca
parentc26ee5a448b0b2f509ee704ebffaa665400a2216 (diff)
feat(depot-build): Add a tool to build at arbitrary tree locations r/970
Assuming you're in `/depot/fun/clbot`, you can do this:

    tazjin@frog /d/f/clbot (master)> depot-build
    Building //fun/clbot
    /nix/store/i1zc6g58wa4819kyhaqi12zsh3hr31ph-clbot

It is automatically added to the $PATH using direnv, too.

Change-Id: Ia3341704e6317c2b8de40a3fa1be3b680d21a42d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/388
Reviewed-by: eta <eta@theta.eu.org>
-rwxr-xr-xbin/__dispatch.sh3
l---------bin/depot-build1
-rw-r--r--tools/depot-build.nix8
3 files changed, 12 insertions, 0 deletions
diff --git a/bin/__dispatch.sh b/bin/__dispatch.sh
index 0808e1f634cc..d8214bccd0d5 100755
--- a/bin/__dispatch.sh
+++ b/bin/__dispatch.sh
@@ -47,6 +47,9 @@ case "${TARGET_TOOL}" in
   git-bug)
     attr="third_party.git-bug"
     ;;
+  depot-build)
+    attr="tools.depot-build"
+    ;;
   *)
     echo "The tool '${TARGET_TOOL}' is currently not installed in this repository."
     exit 1
diff --git a/bin/depot-build b/bin/depot-build
new file mode 120000
index 000000000000..8390ec9c9652
--- /dev/null
+++ b/bin/depot-build
@@ -0,0 +1 @@
+__dispatch.sh
\ No newline at end of file
diff --git a/tools/depot-build.nix b/tools/depot-build.nix
new file mode 100644
index 000000000000..5661d58760b5
--- /dev/null
+++ b/tools/depot-build.nix
@@ -0,0 +1,8 @@
+# Utility script for building any arbitrary depot path in its folder.
+{ pkgs, ... }:
+
+pkgs.writeShellScriptBin "depot-build" ''
+  TARGET=$(git rev-parse --show-prefix | sed 's|/$||')
+  echo "Building //$TARGET"
+  nix-build -A $(echo $TARGET | sed 's|/|.|') $(${pkgs.git}/bin/git rev-parse --show-toplevel)
+''