1 : #ifndef __SHARED_H
2 : #define __SHARED_H
3 :
4 : #include "types.hh"
5 :
6 : #include <signal.h>
7 :
8 :
9 : /* These are not implemented here, but must be implemented by a
10 : program linking against libmain. */
11 :
12 : /* Main program. Called by main() after the ATerm library has been
13 : initialised and some default arguments have been processed (and
14 : removed from `args'). main() will catch all exceptions. */
15 : void run(nix::Strings args);
16 :
17 : /* Should print a help message to stdout and return. */
18 : void printHelp();
19 :
20 : extern std::string programId;
21 :
22 :
23 : namespace nix {
24 :
25 : /* Ugh. No better place to put this. */
26 : Path makeRootName(const Path & gcRoot, int & counter);
27 : void printGCWarning();
28 :
29 : void printMissing(const PathSet & paths);
30 :
31 : unsigned long long getIntArg(const string & opt,
32 : Strings::iterator & i, const Strings::iterator & end);
33 :
34 : /* Whether we're running setuid. */
35 : extern bool setuidMode;
36 :
37 : extern volatile ::sig_atomic_t blockInt;
38 :
39 8 : MakeError(UsageError, nix::Error);
40 :
41 : struct RemoveTempRoots
42 : {
43 : ~RemoveTempRoots();
44 : };
45 :
46 : }
47 :
48 :
49 : #endif /* !__SHARED_H */
|