#! @shell@ -e nixExpr=$1 extraArgs= extraInstArgs= addDrvLink=0 addOutLink=1 trap 'rm -f ./.nix-build-tmp-*' EXIT # Process the arguments. args=("$@") for ((i = 0; i < ${#args[*]}; )); do arg=${args[$i]} i=$((i + 1)) case "$arg" in --help) echo "syntax: $0 [NIX-EXPR...]" >&2 exit 0 ;; --add-drv-link) addDrvLink=1 ;; --no-link) addOutLink=0 ;; --attr|-A) arg2=${args[$i]} i=$((i + 1)) extraInstArgs="$extraInstArgs $arg $arg2" ;; -*) extraArgs="$extraArgs $arg" ;; *) exprs="$exprs $arg" ;; esac done if test -z "$exprs"; then exprs="./default.nix" fi # Process the specified Nix expressions. for i in $exprs; do # Instantiate the Nix expression. prefix= if test "$addDrvLink" = 0; then prefix=.nix-build-tmp-; fi storeExprs=$(@bindir@/nix-instantiate \ --add-root ./${prefix}derivation --indirect \ $extraInstArgs "$i") for j in $storeExprs; do echo "store expression is $(readlink "$j")" >&2 done # Build the resulting store derivation. prefix= if test "$addOutLink" = 0; then prefix=.nix-build-tmp-; fi outPaths=$(@bindir@/nix-store \ --add-root ./${prefix}result --indirect \ -rv $extraArgs $storeExprs) for j in $outPaths; do echo "$(readlink "$j")" done done