1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-21 17:59:36 +01:00

* Use a proper namespace.

* Optimise header file usage a bit.
* Compile the parser as C++.
This commit is contained in:
Eelco Dolstra 2006-09-04 21:06:23 +00:00
parent aab8812732
commit 75068e7d75
61 changed files with 650 additions and 268 deletions

View file

@ -1,3 +1,11 @@
#include "shared.hh"
#include "globals.hh"
#include "gc.hh"
#include "store.hh"
#include "util.hh"
#include "config.h"
#include <iostream>
#include <cctype>
@ -12,12 +20,8 @@ extern "C" {
#include <aterm2.h>
}
#include "globals.hh"
#include "gc.hh"
#include "store.hh"
#include "shared.hh"
#include "config.h"
namespace nix {
volatile sig_atomic_t blockInt = 0;
@ -173,7 +177,7 @@ static void initAndRun(int argc, char * * argv)
return;
}
else if (arg == "--version") {
cout << format("%1% (Nix) %2%") % programId % NIX_VERSION << endl;
std::cout << format("%1% (Nix) %2%") % programId % NIX_VERSION << std::endl;
return;
}
else if (arg == "--keep-failed" || arg == "-K")
@ -338,10 +342,15 @@ void switchToNixUser()
}
}
static char buf[1024];
int main(int argc, char * * argv)
{
using namespace nix;
/* If we are setuid root, we have to get rid of the excess
privileges ASAP. */
switchToNixUser();
@ -352,7 +361,7 @@ int main(int argc, char * * argv)
/* Turn on buffering for cerr. */
#if HAVE_PUBSETBUF
cerr.rdbuf()->pubsetbuf(buf, sizeof(buf));
std::cerr.rdbuf()->pubsetbuf(buf, sizeof(buf));
#endif
try {
@ -377,10 +386,12 @@ int main(int argc, char * * argv)
} catch (Error & e) {
printMsg(lvlError, format("error: %1%") % e.msg());
return 1;
} catch (exception & e) {
} catch (std::exception & e) {
printMsg(lvlError, format("error: %1%") % e.what());
return 1;
}
return 0;
}

View file

@ -1,9 +1,7 @@
#ifndef __SHARED_H
#define __SHARED_H
#include <string>
#include "util.hh"
#include "types.hh"
/* These are not implemented here, but must be implemented by a
@ -12,17 +10,21 @@
/* Main program. Called by main() after the ATerm library has been
initialised and some default arguments have been processed (and
removed from `args'). main() will catch all exceptions. */
void run(Strings args);
void run(nix::Strings args);
/* Should print a help message to stdout and return. */
void printHelp();
extern std::string programId;
namespace nix {
/* Ugh. No better place to put this. */
Path makeRootName(const Path & gcRoot, int & counter);
void printGCWarning();
extern string programId;
}
#endif /* !__SHARED_H */