From 48b7b222491b2799e265cda9a0b8be0d5d8eb3c0 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Mon, 31 Jul 2023 10:15:34 -0400 Subject: Prototype nix expression generation There are some limitations to this implementation: 1. Using `runCommand` means this will re-run any time anything changes in the repo. The solution is to use the existing import detection to make a list of source files, and put that into a `stdenv.mkDerivation`, which I'll do next. 2. The `NeatInterpolation` usage is ugly. The templated nix code should be extracted into its own file, such as `Biz/Bild/Builder.nix`. 3. I'm not actually calling it yet. The ideal thing would be to call `nix-instantiate`, get the output drv path, and then call `nix-store --realise` on that. To do that I need to refactor my `proc` function to return stdout to the calling function, and I should probably just make helper functions like `nixInstatiate :: Target -> IO DrvPath` and `nixStoreRealise :: DrvPath -> NixStorePath`, or something like that. --- Biz/Test.hs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Biz/Test.hs') diff --git a/Biz/Test.hs b/Biz/Test.hs index b6c2816..0a2cf2f 100644 --- a/Biz/Test.hs +++ b/Biz/Test.hs @@ -87,13 +87,13 @@ expected @?!= actual = assertNotEqual "" expected actual infixl 2 @?!= --- | +-- | expectedVal @=? actualVal (@=?) :: (Eq a, Show a) => a -> a -> HUnit.Assertion a @=? b = a HUnit.@=? b infixl 2 @=? --- | +-- | actualVal @?= expectedVal (@?=) :: (Eq a, Show a) => a -> a -> HUnit.Assertion a @?= b = a HUnit.@?= b -- cgit v1.2.3