Andres Loeh schrieb:
I'd see it more as generalizing nix-env -i. At the moment, you can
fully instantiated nix expressions (i.e., non-functions) to your
environment. Ideally, there'd be an UI where you can add functions
still lacking arguments, and get some guided help what to fill in for
the arguments. Phantasy syntax:
nix-env -i ghc --with-libs="gtk2hs quickcheck"
nix-env -i ghostview --with-x11
Correspondingly, nix-env -q could provide output over the available
flags per expression. The program nix-env would then translate all the
commands into a per-user expression, what maybe it already does.
>>
Note that you can already install arbitrary nix expressions into your environment. I guess that the following should work

 $ nix-env -i -E 'f: f.ghostview {x11Support = true; x11 = f.x11 }'

See also the manual for nix-env. Of course, the syntax could use less space but I think that's as best as we can get.

I'm aware of that, and I should have mentioned it.But I think that
the UI side of things has to be improved. Sooner or later, we need
a way to attach descriptions to missing arguments, to query the "type"
of a missing argument, and for stuff like ghc library packages, have
a list of possible choices that are supposed to work.

Yes, I want to query the types and see what combinations are possible/required!

> Furthermore, I personally have no problems with being asked to
> write an anonymous function parameterized by the default packages
> collection, but the average user might not be too happy about
> such an instruction.

Yeah. Hm, doesn't nix already have all the necessary ingredients? Given that the default package collection is an attribute set, we can write

  nix-env -i -E \
  'f : { with f; ghostview {x11Support = true; inherit x11} }'

The 'f : { with f; }' part can be abstracted into another command line flag

  nix-env -i -EE \
  'ghostview {x11Support = true; inherit x11} }'

Personally, I favor simple function application over other command line methods like --with-libs="gtk2hs quickcheck" since the latter cannot be nested and are not higher-order.

Arguably, the x11Support flag is superfluous and I wish that x11 had the type Maybe Derivation . Hm, or maybe supplying the x11 package on the command line is superfluous. In any case, one of them is :)

Regards,
apfelmus

_______________________________________________
nix-dev mailing list
[email protected]
https://mail.cs.uu.nl/mailman/listinfo/nix-dev

Reply via email to