diff options
author | Ludovic Courtès <ludo@gnu.org> | 2013-02-19 22:48:13 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2013-02-19 22:48:13 +0100 |
commit | b8d2aa264de4ebff472698347588f36ed6d4a3e8 (patch) | |
tree | 9556f5c65f0a2cc0bc573a7209683115a115ada0 | |
parent | 15b673ebe88cd98d3f49039a5da1a37bfc5f9b8e (diff) |
daemon: Add `--listen'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_LISTEN): New macro.
(options): Add `--listen'.
(parse_opt): Handle it.
* doc/guix.texi (Invoking guix-daemon): Mention it.
-rw-r--r-- | doc/guix.texi | 7 | ||||
-rw-r--r-- | nix/nix-daemon/guix-daemon.cc | 19 |
2 files changed, 25 insertions, 1 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index f84b37686a..849ab06c4a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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 diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc index 604a26f0b1..1611840bd4 100644 --- a/nix/nix-daemon/guix-daemon.cc +++ b/nix/nix-daemon/guix-daemon.cc @@ -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) |