aboutsummaryrefslogtreecommitdiff
path: root/src/nix/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix/main.cc')
-rw-r--r--src/nix/main.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/nix/main.cc b/src/nix/main.cc
index 7fece5b87..0990549ae 100644
--- a/src/nix/main.cc
+++ b/src/nix/main.cc
@@ -9,6 +9,10 @@
#include "store-api.hh"
#include "progress-bar.hh"
+extern std::string chrootHelperName;
+
+void chrootHelper(int argc, char * * argv);
+
namespace nix {
struct NixArgs : virtual MultiCommand, virtual MixCommonArgs
@@ -57,6 +61,13 @@ void mainWrapped(int argc, char * * argv)
verbosity = lvlError;
settings.verboseBuild = false;
+ /* The chroot helper needs to be run before any threads have been
+ started. */
+ if (argc > 0 && argv[0] == chrootHelperName) {
+ chrootHelper(argc, argv);
+ return;
+ }
+
initNix();
initGC();