mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-10-14 16:40:09 +03:00
Merge pull request #232459 from Kranzes/nixos-rebuild
nixos-rebuild: make --use-substitutes/-s/--substitute-on-destination work with flakes
This commit is contained in:
commit
3e92ad30a8
@ -17,7 +17,7 @@ showSyntax() {
|
|||||||
|
|
||||||
# Parse the command line.
|
# Parse the command line.
|
||||||
origArgs=("$@")
|
origArgs=("$@")
|
||||||
copyClosureFlags=()
|
copyFlags=()
|
||||||
extraBuildFlags=()
|
extraBuildFlags=()
|
||||||
lockFlags=()
|
lockFlags=()
|
||||||
flakeFlags=(--extra-experimental-features 'nix-command flakes')
|
flakeFlags=(--extra-experimental-features 'nix-command flakes')
|
||||||
@ -74,8 +74,8 @@ while [ "$#" -gt 0 ]; do
|
|||||||
upgrade=1
|
upgrade=1
|
||||||
upgrade_all=1
|
upgrade_all=1
|
||||||
;;
|
;;
|
||||||
--use-substitutes|-s)
|
--use-substitutes|--substitute-on-destination|-s)
|
||||||
copyClosureFlags+=("$i")
|
copyFlags+=("-s")
|
||||||
;;
|
;;
|
||||||
-I|--max-jobs|-j|--cores|--builders|--log-format)
|
-I|--max-jobs|-j|--cores|--builders|--log-format)
|
||||||
j="$1"; shift 1
|
j="$1"; shift 1
|
||||||
@ -192,12 +192,12 @@ copyToTarget() {
|
|||||||
if ! [ "$targetHost" = "$buildHost" ]; then
|
if ! [ "$targetHost" = "$buildHost" ]; then
|
||||||
if [ -z "$targetHost" ]; then
|
if [ -z "$targetHost" ]; then
|
||||||
logVerbose "Running nix-copy-closure with these NIX_SSHOPTS: $SSHOPTS"
|
logVerbose "Running nix-copy-closure with these NIX_SSHOPTS: $SSHOPTS"
|
||||||
NIX_SSHOPTS=$SSHOPTS runCmd nix-copy-closure "${copyClosureFlags[@]}" --from "$buildHost" "$1"
|
NIX_SSHOPTS=$SSHOPTS runCmd nix-copy-closure "${copyFlags[@]}" --from "$buildHost" "$1"
|
||||||
elif [ -z "$buildHost" ]; then
|
elif [ -z "$buildHost" ]; then
|
||||||
logVerbose "Running nix-copy-closure with these NIX_SSHOPTS: $SSHOPTS"
|
logVerbose "Running nix-copy-closure with these NIX_SSHOPTS: $SSHOPTS"
|
||||||
NIX_SSHOPTS=$SSHOPTS runCmd nix-copy-closure "${copyClosureFlags[@]}" --to "$targetHost" "$1"
|
NIX_SSHOPTS=$SSHOPTS runCmd nix-copy-closure "${copyFlags[@]}" --to "$targetHost" "$1"
|
||||||
else
|
else
|
||||||
buildHostCmd nix-copy-closure "${copyClosureFlags[@]}" --to "$targetHost" "$1"
|
buildHostCmd nix-copy-closure "${copyFlags[@]}" --to "$targetHost" "$1"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
@ -292,7 +292,7 @@ nixFlakeBuild() {
|
|||||||
drv="$(runCmd nix "${flakeFlags[@]}" eval --raw "${attr}.drvPath" "${evalArgs[@]}" "${extraBuildFlags[@]}")"
|
drv="$(runCmd nix "${flakeFlags[@]}" eval --raw "${attr}.drvPath" "${evalArgs[@]}" "${extraBuildFlags[@]}")"
|
||||||
if [ -a "$drv" ]; then
|
if [ -a "$drv" ]; then
|
||||||
logVerbose "Running nix with these NIX_SSHOPTS: $SSHOPTS"
|
logVerbose "Running nix with these NIX_SSHOPTS: $SSHOPTS"
|
||||||
NIX_SSHOPTS=$SSHOPTS runCmd nix "${flakeFlags[@]}" copy --derivation --to "ssh://$buildHost" "$drv"
|
NIX_SSHOPTS=$SSHOPTS runCmd nix "${flakeFlags[@]}" copy "${copyFlags[@]}" --derivation --to "ssh://$buildHost" "$drv"
|
||||||
buildHostCmd nix-store -r "$drv" "${buildArgs[@]}"
|
buildHostCmd nix-store -r "$drv" "${buildArgs[@]}"
|
||||||
else
|
else
|
||||||
log "nix eval failed"
|
log "nix eval failed"
|
||||||
@ -480,7 +480,7 @@ if [[ -n $buildNix && -z $flake ]]; then
|
|||||||
if [ -a "$nixDrv" ]; then
|
if [ -a "$nixDrv" ]; then
|
||||||
nix-store -r "$nixDrv"'!'"out" --add-root "$tmpDir/nix" --indirect >/dev/null
|
nix-store -r "$nixDrv"'!'"out" --add-root "$tmpDir/nix" --indirect >/dev/null
|
||||||
if [ -n "$buildHost" ]; then
|
if [ -n "$buildHost" ]; then
|
||||||
nix-copy-closure "${copyClosureFlags[@]}" --to "$buildHost" "$nixDrv"
|
nix-copy-closure "${copyFlags[@]}" --to "$buildHost" "$nixDrv"
|
||||||
# The nix build produces multiple outputs, we add them all to the remote path
|
# The nix build produces multiple outputs, we add them all to the remote path
|
||||||
for p in $(buildHostCmd nix-store -r "$(readlink "$nixDrv")" "${buildArgs[@]}"); do
|
for p in $(buildHostCmd nix-store -r "$(readlink "$nixDrv")" "${buildArgs[@]}"); do
|
||||||
remoteNix="$remoteNix${remoteNix:+:}$p/bin"
|
remoteNix="$remoteNix${remoteNix:+:}$p/bin"
|
||||||
|
Loading…
Reference in New Issue
Block a user