[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Viewing derivation output in the store
From: |
Maxime Devos |
Subject: |
Re: Viewing derivation output in the store |
Date: |
Wed, 20 Apr 2022 21:42:33 +0200 |
User-agent: |
Evolution 3.38.3-1 |
Brian Cully schreef op wo 20-04-2022 om 11:40 [-0400]:
> How do I go from the derivation in ’test-drv’ to the output in
> the store? Something like how, from the REPL, this works:
>
> ---[snip]---
> scheme@(guile-user)> ,enter-store-monad
> store-monad@(guile-user) [1]> (text-file "foo" "hello")
> $34 = "/gnu/store/mnzh1q6ilbw0bg04dg0vc4f47laz57lg-foo"
> ---[snip]---
Proposal, for 'plain-file', which returns a ‘high-level’ object that
can be lowered to a monadic value:
,run-in-store (lower-object (plain-file "foo" "bar"))
for 'gexp->derivation', which directly returns a monadic value:
,run-in-store (gexp->derivation "x" #~(pk #$output))
On my x86_64 system I can low look at the derivation at
‘/gnu/store/2s5gfk7a41v7ianfw5qv88y6336mvkw4-x.drv’. However, the
derivation hasn't been build yet, so let's lower it.
To actually make the output path exist, the derivation needs to be
actually built:
;; XXX: store-lift and this construct is undocumented
,run-in-store (mlet* %store-monad ((drv (gexp->derivation "x" #~(pk
#$output)))) ((store-lift build-derivations) (list drv)))
building path(s) `/gnu/store/kgidgrxjhg8w3hy3fhzjngwbix40nm8v-x'
;;; ("/gnu/store/kgidgrxjhg8w3hy3fhzjngwbix40nm8v-x")
builder for `/gnu/store/2s5gfk7a41v7ianfw5qv88y6336mvkw4-x.drv' failed
to produce output path `/gnu/store/kgidgrxjhg8w3hy3fhzjngwbix40nm8v-x'
While executing meta-command:
ERROR:
1. &store-protocol-error:
message: "build of `/gnu/store/2s5gfk7a41v7ianfw5qv88y6336mvkw4-x.drv'
failed"
status: 1
Maybe there's an easier way to do it -- maybe there could be a monadic
lower-to-store-item (like lower-object, but lowers to the store item
and not just the derivation).
Greetings,
Maxime.
signature.asc
Description: This is a digitally signed message part