From b2adc5926ef44b951b74cbcda4653b7ea8a8491e Mon Sep 17 00:00:00 2001 From: Tom Prince Date: Thu, 2 Sep 2021 21:25:26 -0600 Subject: [PATCH] Expose eval as nix attribute. --- data/eval-machines.nix | 4 ++-- default.nix | 52 +++++++++++++++++++++++------------------- 2 files changed, 31 insertions(+), 25 deletions(-) diff --git a/data/eval-machines.nix b/data/eval-machines.nix index a4bcda6..8cba819 100644 --- a/data/eval-machines.nix +++ b/data/eval-machines.nix @@ -1,9 +1,9 @@ # Completely stripped down version of nixops' evaluator -{ networkExpr }: +{ networkExpr, pkgs ? {} }: let network = import networkExpr; - nwPkgs = network.network.pkgs or {}; + nwPkgs = network.network.pkgs or pkgs; lib = network.network.lib or nwPkgs.lib or (import ); evalConfig = network.network.evalConfig or ((nwPkgs.path or ) + "/nixos/lib/eval-config.nix"); runCommand = network.network.runCommand or nwPkgs.runCommand or ((import {}).runCommand); diff --git a/default.nix b/default.nix index 58d97bd..fcbfb5b 100644 --- a/default.nix +++ b/default.nix @@ -3,35 +3,41 @@ , version ? "dev" }: -pkgs.buildGoModule rec { - name = "morph-unstable-${version}"; - inherit version; +let + morph = pkgs.buildGoModule rec { + name = "morph-unstable-${version}"; + inherit version; - nativeBuildInputs = with pkgs; [ go-bindata ]; + nativeBuildInputs = with pkgs; [ go-bindata ]; - src = pkgs.nix-gitignore.gitignoreSource [] ./.; + src = pkgs.nix-gitignore.gitignoreSource [] ./.; - buildFlagsArray = '' - -ldflags= - -X - main.version=${version} - ''; + buildFlagsArray = '' + -ldflags= + -X + main.version=${version} + ''; - vendorSha256 = "08zzp0h4c4i5hk4whz06a3da7qjms6lr36596vxz0d8q0n7rspr9"; + vendorSha256 = "08zzp0h4c4i5hk4whz06a3da7qjms6lr36596vxz0d8q0n7rspr9"; - postPatch = '' - go-bindata -pkg assets -o assets/assets.go data/ - ''; + postPatch = '' + go-bindata -pkg assets -o assets/assets.go data/ + ''; - postInstall = '' - mkdir -p $lib - cp -v ./data/*.nix $lib - ''; + postInstall = '' + mkdir -p $lib + cp -v ./data/*.nix $lib + ''; - outputs = [ "out" "lib" ]; + outputs = [ "out" "lib" ]; - meta = { - homepage = "https://github.com/DBCDK/morph"; - description = "Morph is a NixOS host manager written in Golang."; + passthru = { + eval = args@{...}: (import (morph.lib + "/eval-machines.nix")) ({ inherit pkgs; } // args); + }; + + meta = { + homepage = "https://github.com/DBCDK/morph"; + description = "Morph is a NixOS host manager written in Golang."; + }; }; -} +in morph