set -e export top_srcdir="@abs_top_srcdir@" export top_builddir="@abs_top_builddir@" export TOP=$(pwd)/.. export TEST_ROOT=$(pwd)/test-tmp export NIX_STORE_DIR if ! NIX_STORE_DIR=$(readlink -f $TEST_ROOT/store 2> /dev/null); then # Maybe the build directory is symlinked. export NIX_IGNORE_SYMLINK_STORE=1 NIX_STORE_DIR=$TEST_ROOT/store fi export NIX_LOCALSTATE_DIR=$TEST_ROOT/var export NIX_LOG_DIR=$TEST_ROOT/var/log/nix export NIX_STATE_DIR=$TEST_ROOT/var/nix export NIX_DB_DIR=$TEST_ROOT/db export NIX_CONF_DIR=$TEST_ROOT/etc export NIX_BIN_DIR=$TEST_ROOT/bin export NIX_LIBEXEC_DIR=$TEST_ROOT/bin export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests export NIX_ROOT_FINDER= export NIX_PATH=nix=$TOP/corepkgs export SHARED=$TEST_ROOT/shared export PATH=$NIX_BIN_DIR:$TOP/scripts:$PATH export NIX_BUILD_HOOK= export PERL=perl export PERL5LIB=$TOP/perl/lib:$PERL5LIB export NIX_BZIP2="@bzip2_bin_test@/bzip2" if test "${NIX_BZIP2:0:1}" != "/"; then NIX_BZIP2=`pwd`/${NIX_BZIP2} fi export dot=@dot@ export xmllint="@xmllint@" export xmlflags="@xmlflags@" export xsltproc="@xsltproc@" export sqlite3="@sqlite_bin@/bin/sqlite3" export SHELL="@shell@" export version=@version@ export system=@system@ readLink() { ls -l "$1" | sed 's/.*->\ //' } clearProfiles() { profiles="$NIX_STATE_DIR"/profiles rm -f $profiles/* } clearStore() { echo "clearing store..." chmod -R +w "$NIX_STORE_DIR" rm -rf "$NIX_STORE_DIR" mkdir "$NIX_STORE_DIR" rm -rf "$NIX_DB_DIR" mkdir "$NIX_DB_DIR" nix-store --init clearProfiles rm -f "$NIX_STATE_DIR"/gcroots/auto/* rm -f "$NIX_STATE_DIR"/gcroots/ref } clearManifests() { rm -f $NIX_STATE_DIR/manifests/* } startDaemon() { # Start the daemon, wait for the socket to appear. !!! # ‘nix-worker’ should have an option to fork into the background. rm -f $NIX_STATE_DIR/daemon-socket/socket nix-worker --daemon & for ((i = 0; i < 30; i++)); do if [ -e $NIX_STATE_DIR/daemon-socket/socket ]; then break; fi sleep 1 done pidDaemon=$! trap "kill -9 $pidDaemon" EXIT export NIX_REMOTE=daemon } killDaemon() { kill -9 $pidDaemon wait $pidDaemon || true trap "" EXIT } fail() { echo "$1" exit 1 }