diff options
author | Griffin Smith <grfn@gws.fyi> | 2020-08-29T01·42-0400 |
---|---|---|
committer | glittershark <grfn@gws.fyi> | 2020-08-29T01·52+0000 |
commit | 059d90dd6dd317b29bde5517901fa95695792d2c (patch) | |
tree | 93243a24b4f3a703c76ff865a48bb0012579fb48 /third_party/nix/scripts | |
parent | 96ea76bd5984e4f11c9807ec481e1ed15deccd69 (diff) |
feat(tvix): Add scripts for local nix daemon testing r/1735
These are the scripts I use to test the nix daemon interaction with a non-/nix store directory during development, copied almost verbatim from my cmake build directory. As such, there's likely a *lot* of cleanup and deduplication to be done here, but I'm committing these as is in the hope that others can benefit from them somehow. Change-Id: I42a10a85e6731fa2014c7ea9738224d678a8376b Reviewed-on: https://cl.tvl.fyi/c/depot/+/1881 Reviewed-by: kanepyork <rikingcoding@gmail.com> Tested-by: BuildkiteCI
Diffstat (limited to 'third_party/nix/scripts')
-rwxr-xr-x | third_party/nix/scripts/build.sh | 24 | ||||
-rwxr-xr-x | third_party/nix/scripts/daemon.sh | 24 | ||||
-rwxr-xr-x | third_party/nix/scripts/eval.sh | 23 | ||||
-rwxr-xr-x | third_party/nix/scripts/repl.sh | 23 | ||||
-rwxr-xr-x | third_party/nix/scripts/setup_store.sh | 11 |
5 files changed, 105 insertions, 0 deletions
diff --git a/third_party/nix/scripts/build.sh b/third_party/nix/scripts/build.sh new file mode 100755 index 000000000000..759c9e9f2c12 --- /dev/null +++ b/third_party/nix/scripts/build.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# Run `nix build` using a local store, for use during development. Intended to +# be run from the cmake build directory + +set -eo pipefail + +if [ $1 = "--debug" ]; then + run=(gdb --args) + shift 1 +elif [ "$1" = "--rr" ]; then + run=(rr record) + shift 1 +else + run=() +fi + +make -j 10 +NIX_STORE_DIR=$(pwd)/nix/store \ + NIX_LOG_DIR=$(pwd)/nix/var/log/nix \ + NIX_STATE_DIR=$(pwd)/nix/var/nix \ + XDG_CACHE_HOME=$(pwd)/cache \ + NIX_REMOTE=daemon \ + ${run[*]} ./src/nix build "$@" diff --git a/third_party/nix/scripts/daemon.sh b/third_party/nix/scripts/daemon.sh new file mode 100755 index 000000000000..3daa0f139097 --- /dev/null +++ b/third_party/nix/scripts/daemon.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -eo pipefail + +# Run a nix daemon using a local store, for use during development. Intended to +# be run from the cmake build directory + +if [ $1 = "--debug" ]; then + run=(gdb --args) + shift 1 +elif [ "$1" = "--rr" ]; then + run=(rr record) + shift 1 +else + run=() +fi + +make -j 10 +NIX_STORE_DIR=$(pwd)/nix/store \ + NIX_LOG_DIR=$(pwd)/nix/var/log/nix \ + NIX_STATE_DIR=$(pwd)/nix/var/nix \ + XDG_CACHE_HOME=$(pwd)/cache \ + NIX_LIBEXEC_DIR=$(pwd) \ + GRPC_TRACE=all \ + ${gdb[*]} ./src/nix-daemon/nix-daemon diff --git a/third_party/nix/scripts/eval.sh b/third_party/nix/scripts/eval.sh new file mode 100755 index 000000000000..f71d9f7931fe --- /dev/null +++ b/third_party/nix/scripts/eval.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -eo pipefail + +# Run `nix eval` using a local store, for use during development. Intended to +# be run from the cmake build directory + +if [ "$#" -gt 0 ] && [ "$1" = "--debug" ]; then + gdb=(gdb --args) + shift 1 +elif [ "$1" = "--rr" ]; then + gdb=(rr record) + shift 1 +else + gdb=() +fi + +make -j 10 +NIX_STORE_DIR=$(pwd)/nix/store \ + NIX_LOG_DIR=$(pwd)/nix/var/log/nix \ + NIX_STATE_DIR=$(pwd)/nix/var/nix \ + XDG_CACHE_HOME=$(pwd)/cache \ + NIX_REMOTE=daemon \ + ${gdb[*]} ./src/nix eval "$@" diff --git a/third_party/nix/scripts/repl.sh b/third_party/nix/scripts/repl.sh new file mode 100755 index 000000000000..d068e807903a --- /dev/null +++ b/third_party/nix/scripts/repl.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +set -eo pipefail + +# Run `nix repl` using a local store, for use during development. Intended to +# be run from the cmake build directory + +if [ "$#" -gt 0 ] && [ "$1" = "--debug" ]; then + gdb=(gdb --args) + shift 1 +elif [ "$1" = "--rr" ]; then + gdb=(rr record) + shift 1 +else + gdb=() +fi + +make -j 10 +NIX_STORE_DIR=$(pwd)/nix/store \ + NIX_LOG_DIR=$(pwd)/nix/var/log/nix \ + NIX_STATE_DIR=$(pwd)/nix/var/nix \ + XDG_CACHE_HOME=$(pwd)/cache \ + NIX_REMOTE=daemon \ + ${gdb[*]} ./src/nix repl "$@" diff --git a/third_party/nix/scripts/setup_store.sh b/third_party/nix/scripts/setup_store.sh new file mode 100755 index 000000000000..ee96c8d3b853 --- /dev/null +++ b/third_party/nix/scripts/setup_store.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +set -euo pipefail + +# Setup a store for local development rooted at the current directory, and +# compatible with the scripts in this directory (repl.sh, build.sh, eval.sh, +# daemon.sh, etc). Intended to be run from the cmake build directory + +mkdir -p nix/store nix/var/nix nix/var/log/nix +ln -s $(pwd)/src/nix ./nix/build-remote +mkdir -p $(dirname "$(pwd)${SANDBOX_SHELL}") +cp "${SANDBOX_SHELL}" "$(pwd)${SANDBOX_SHELL}" |