1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-28 09:31:16 +02:00

* `nix-env -qa --description' shows human-readable descriptions of

packages (provided that they have a `meta.description' attribute).
  E.g.,

  $ ./src/nix-env/nix-env -qa --description gcc
  gcc-4.0.2   GNU Compiler Collection, 4.0.x (cross-compiler for sparc-linux)
  gcc-4.0.2   GNU Compiler Collection, 4.0.x (cross-compiler for mips-linux)
  gcc-4.0.2   GNU Compiler Collection, 4.0.x (cross-compiler for arm-linux)
  gcc-4.0.2   GNU Compiler Collection, 4.0.x
This commit is contained in:
Eelco Dolstra 2006-03-10 16:20:42 +00:00
parent a33fb2d287
commit 37d1b1cafd
7 changed files with 79 additions and 25 deletions

View file

@ -2,6 +2,49 @@
#include "nixexpr-ast.hh"
string DrvInfo::queryDrvPath(EvalState & state) const
{
if (drvPath == "") {
Expr a = attrs.get("drvPath");
(string &) drvPath = a ? evalPath(state, a) : "";
}
return drvPath;
}
string DrvInfo::queryOutPath(EvalState & state) const
{
if (outPath == "") {
Expr a = attrs.get("outPath");
if (!a) throw Error("output path missing");
(string &) outPath = evalPath(state, a);
}
return outPath;
}
MetaInfo DrvInfo::queryMetaInfo(EvalState & state) const
{
MetaInfo meta;
Expr a = attrs.get("meta");
if (!a) return meta; /* fine, empty meta information */
ATermMap attrs2;
queryAllAttrs(evalExpr(state, a), attrs2);
for (ATermIterator i(attrs2.keys()); i; ++i) {
ATerm s = coerceToString(evalExpr(state, attrs2.get(*i)));
if (s)
meta[aterm2String(*i)] = aterm2String(s);
/* For future compatibility, ignore attribute values that are
not strings. */
}
return meta;
}
typedef set<Expr> Exprs;