97 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
	
		
			2.3 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| set -e
 | ||
| 
 | ||
| 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_DATA_DIR=$TEST_ROOT/data
 | ||
| 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 SHARED=$TEST_ROOT/shared
 | ||
| 
 | ||
| export PATH=$NIX_BIN_DIR:$TOP/scripts:$PATH
 | ||
| 
 | ||
| export REAL_BIN_DIR=@bindir@
 | ||
| export REAL_LIBEXEC_DIR=@libexecdir@
 | ||
| export REAL_LOCALSTATE_DIR=@localstatedir@
 | ||
| export REAL_DATA_DIR=@datadir@
 | ||
| export REAL_STORE_DIR=@storedir@
 | ||
| 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
 | ||
| }
 |