feat(tvix): Add scripts for local nix daemon testing
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
This commit is contained in:
parent
96ea76bd59
commit
059d90dd6d
5 changed files with 105 additions and 0 deletions
24
third_party/nix/scripts/build.sh
vendored
Executable file
24
third_party/nix/scripts/build.sh
vendored
Executable file
|
@ -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 "$@"
|
24
third_party/nix/scripts/daemon.sh
vendored
Executable file
24
third_party/nix/scripts/daemon.sh
vendored
Executable file
|
@ -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
|
23
third_party/nix/scripts/eval.sh
vendored
Executable file
23
third_party/nix/scripts/eval.sh
vendored
Executable file
|
@ -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 "$@"
|
23
third_party/nix/scripts/repl.sh
vendored
Executable file
23
third_party/nix/scripts/repl.sh
vendored
Executable file
|
@ -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 "$@"
|
11
third_party/nix/scripts/setup_store.sh
vendored
Executable file
11
third_party/nix/scripts/setup_store.sh
vendored
Executable file
|
@ -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}"
|
Loading…
Reference in a new issue