From 70712d466fd52ebd48c5ddda2556ac36f04677a0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Isma=C3=ABl=20Bouya?= Date: Sat, 24 Oct 2020 10:49:21 +0200 Subject: [PATCH] Add dry-run patch for morph --- nixops/Makefile | 3 ++ overlays/morph/default.nix | 2 +- overlays/morph/dry-run.patch | 59 ++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 overlays/morph/dry-run.patch diff --git a/nixops/Makefile b/nixops/Makefile index 0bebaf8..cefd677 100644 --- a/nixops/Makefile +++ b/nixops/Makefile @@ -46,6 +46,9 @@ debug: build: ./scripts/with_env morph build default.nix $(MORPH_ARGS) +dry-run: + ./scripts/with_env morph build --dry-run default.nix $(MORPH_ARGS) + upload: ./scripts/with_env morph push default.nix $(MORPH_ARGS) diff --git a/overlays/morph/default.nix b/overlays/morph/default.nix index ee59e25..448f051 100644 --- a/overlays/morph/default.nix +++ b/overlays/morph/default.nix @@ -1,5 +1,5 @@ self: super: { morph = super.morph.overrideAttrs(old: { - patches = (old.patches or []) ++ [ ./verbose_nix.patch ]; + patches = (old.patches or []) ++ [ ./verbose_nix.patch ./dry-run.patch ]; }); } 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 -- 2.41.0