X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FConfig%2FNix.git;a=blobdiff_plain;f=overlays%2Fmorph%2Fdry-run.patch;fp=overlays%2Fmorph%2Fdry-run.patch;h=2ff099e855ccbf2ed19ef5278857062a33341942;hp=0000000000000000000000000000000000000000;hb=70712d466fd52ebd48c5ddda2556ac36f04677a0;hpb=f44cd8599f693bc4e7ca2e4a18bf26594ef05f84 diff --git a/overlays/morph/dry-run.patch b/overlays/morph/dry-run.patch new file mode 100644 index 0000000..2ff099e --- /dev/null +++ b/overlays/morph/dry-run.patch @@ -0,0 +1,59 @@ +diff --git a/morph.go b/morph.go +index a88414b..e5894df 100644 +--- a/morph.go ++++ b/morph.go +@@ -542,6 +542,7 @@ func getNixContext() *nix.NixContext { + return &nix.NixContext{ + EvalMachines: filepath.Join(assetRoot, assets.Friendly, "eval-machines.nix"), + ShowTrace: showTrace, ++ DryRun: *dryRun, + KeepGCRoot: *keepGCRoot, + AllowBuildShell: *allowBuildShell, + } +@@ -574,8 +575,10 @@ func buildHosts(hosts []nix.Host) (resultPath string, err error) { + return + } + +- fmt.Fprintln(os.Stderr, "nix result path: ") +- fmt.Println(resultPath) ++ if resultPath != "" { ++ fmt.Fprintln(os.Stderr, "nix result path: ") ++ fmt.Println(resultPath) ++ } + return + } + +diff --git a/nix/nix.go b/nix/nix.go +index 6a9cfd5..0f7884b 100644 +--- a/nix/nix.go ++++ b/nix/nix.go +@@ -49,6 +49,7 @@ type Deployment struct { + type NixContext struct { + EvalMachines string + ShowTrace bool ++ DryRun bool + KeepGCRoot bool + AllowBuildShell bool + } +@@ -269,6 +270,10 @@ func (ctx *NixContext) BuildMachines(deploymentPath string, hosts []Host, nixArg + args = append(args, "--show-trace") + } + ++ if ctx.DryRun { ++ args = append(args, "--dry-run") ++ } ++ + if nixBuildTargets != "" { + args = append(args, + "--arg", "buildTargets", nixBuildTargets) +@@ -308,6 +313,10 @@ func (ctx *NixContext) BuildMachines(deploymentPath string, hosts []Host, nixArg + return resultPath, errors.New(errorMessage) + } + ++ if ctx.DryRun { ++ return "", err ++ } ++ + resultPath, err = os.Readlink(resultLinkPath) + if err != nil { + return "", err