tvl-depot/users/glittershark/xanthous/.github/actions/nix-build/entrypoint.sh
Vincent Ambo 2edb963b97 Add 'users/glittershark/xanthous/' from commit '53b56744f4335c038724a1bcffc27a7eb8cf6a6d'
git-subtree-dir: users/glittershark/xanthous
git-subtree-mainline: 91f53f02d8
git-subtree-split: 53b56744f4
2020-06-16 01:05:44 +01:00

24 lines
837 B
Bash
Executable file

#!/usr/bin/env bash
# Entrypoint that runs nix-build and, optionally, copies Docker image tarballs
# to real files. The reason this is necessary is because once a Nix container
# exits, you must copy out the artifacts to the working directory before exit.
[ "$DEBUG" = "1" ] && set -x
[ "$QUIET" = "1" ] && QUIET_ARG="-Q"
set -e
# file to build (e.g. release.nix)
file="$1"
[ "$file" = "" ] && echo "No .nix file to build specified!" && exit 1
[ ! -e "$file" ] && echo "File $file not exist!" && exit 1
echo "Building all attrs in $file..."
nix-build --no-link ${QUIET_ARG} "$file" "${@:2}"
echo "Copying build closure to $(pwd)/store..."
mapfile -t storePaths < <(nix-build ${QUIET_ARG} --no-link "$file" | grep -v cache-deps)
printf '%s\n' "${storePaths[@]}" > store.roots
nix copy --to "file://$(pwd)/store" "${storePaths[@]}"