derivations: Raise an error for references to non-existent outputs.
authorLudovic Courtès <ludo@gnu.org>
Sat, 24 Jan 2015 21:50:40 +0000 (22:50 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sat, 24 Jan 2015 21:57:49 +0000 (22:57 +0100)
commitf304c9c237aca7e9007d6e0cefd6ed858c5a9e47
treeba6720f7db2bd14590d2aa89fa28245ff7ee40a0
parentda74bc7886cba77192260d84b2dd57466e4b5354
derivations: Raise an error for references to non-existent outputs.

Fixes <http://bugs.gnu.org/19630>.
Reported by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>.

* guix/derivations.scm (&derivation-error,
  &derivation-missing-output-error): New error conditions.
  (derivation->output-path): Raise a '&derivation-missing-output-error'
  if OUTPUT is not an output of DRV.
* guix/ui.scm (call-with-error-handling): Add case for
  'derivation-missing-output-error?'.
  (show-what-to-build): Check whether (derivation-outputs drv) is
  empty.
* tests/packages.scm ("reference to non-existent output"): Add test.
guix/derivations.scm
guix/ui.scm
tests/packages.scm