@@ 367,6 367,13 @@ Do not keep build logs. By default they are kept under
Assume @var{system} as the current system type. By default it is the
architecture/kernel pair found at configure time, such as
@code{x86_64-linux}.
+
+@item --listen=@var{socket}
+Listen for connections on @var{socket}, the file name of a Unix-domain
+socket. The default socket is
+@file{@var{localstatedir}/daemon-socket/socket}. This option is only
+useful in exceptional circumstances, such as if you need to run several
+daemons on the same machine.
@end table
@@ 1,5 1,5 @@
/* GNU Guix --- Functional package management for GNU
- Copyright (C) 2012 Ludovic Courtès <ludo@gnu.org>
+ Copyright (C) 2012, 2013 Ludovic Courtès <ludo@gnu.org>
This file is part of GNU Guix.
@@ 64,6 64,7 @@ builds derivations on behalf of its clients.";
#define GUIX_OPT_IMPERSONATE_LINUX_26 8
#define GUIX_OPT_DEBUG 9
#define GUIX_OPT_CHROOT_DIR 10
+#define GUIX_OPT_LISTEN 11
static const struct argp_option options[] =
{
@@ 103,6 104,8 @@ static const struct argp_option options[] =
" (this option has no effect in this configuration)"
#endif
},
+ { "listen", GUIX_OPT_LISTEN, "SOCKET", 0,
+ "Listen for connections on SOCKET" },
{ "debug", GUIX_OPT_DEBUG, 0, 0,
"Produce debugging output" },
{ 0, 0, 0, 0, 0 }
@@ 138,6 141,17 @@ parse_opt (int key, char *arg, struct argp_state *state)
case GUIX_OPT_LOSE_LOGS:
settings.keepLog = false;
break;
+ case GUIX_OPT_LISTEN:
+ try
+ {
+ settings.nixDaemonSocketFile = canonPath (arg);
+ }
+ catch (std::exception &e)
+ {
+ fprintf (stderr, "error: %s\n", e.what ());
+ exit (EXIT_FAILURE);
+ }
+ break;
case GUIX_OPT_DEBUG:
verbosity = lvlDebug;
break;
@@ 207,6 221,9 @@ main (int argc, char *argv[])
}
#endif
+ printMsg (lvlDebug,
+ format ("listening on `%1%'") % settings.nixDaemonSocketFile);
+
run (nothing);
}
catch (std::exception &e)