* Start of a helper tool to evaluate job expressions efficiently.

[?]
Mar 5, 2009, 2:59 PM
4N5APGRGHTKFMEJ7THSJX6TSYYAP3BUZQG73AJBKCQLXOOEHPATQC

Dependencies

  • [2] CLXEECMF * Start putting build results in a database.

Change contents

  • file addition: c (d--r------)
    [2.4]
  • file addition: Makefile (----------)
    [0.1]
    NIX = /home/eelco/Dev/nix/inst
    ATERM = /home/eelco/Dev/nix/externals/inst-aterm
    eval-jobs: eval-jobs.cc
    libtool --mode=link g++ -o eval-jobs eval-jobs.cc -I$(NIX)/include/nix -I$(ATERM)/include -L$(NIX)/lib/nix/ -lmain -lexpr -L$(ATERM)/lib -lATerm
  • file addition: eval-jobs.cc (----------)
    [0.1]
    #include <map>
    #include <iostream>
    #include "shared.hh"
    #include "store-api.hh"
    #include "eval.hh"
    #include "parser.hh"
    #include "expr-to-xml.hh"
    using namespace nix;
    void printHelp()
    {
    std::cout << "Syntax: eval-jobs <expr>\n";
    }
    void run(Strings args)
    {
    EvalState state;
    Path releaseExpr;
    for (Strings::iterator i = args.begin(); i != args.end(); ) {
    string arg = *i++;
    if (arg[0] == '-')
    throw UsageError(format("unknown flag `%1%'") % arg);
    else
    releaseExpr = arg;
    }
    store = openStore();
    Expr e = evalExpr(state, parseExprFromFile(state, releaseExpr));
    PathSet context;
    printTermAsXML(e, std::cout, context);
    }
    string programId = "eval-jobs";