diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-12-13 19:08:20 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-12-13 19:20:01 +0100 |
commit | ecf84b7c482e4ab0d001b0121b76f1ae11a5482b (patch) | |
tree | 0086f69857cb51bd5bb20bf0d3d972c5b810a089 /nix/nix-daemon/guix-daemon.cc | |
parent | f3ff1da42479eda7826d1bcb10e3a067e62a2daa (diff) | |
download | guix-ecf84b7c482e4ab0d001b0121b76f1ae11a5482b.tar guix-ecf84b7c482e4ab0d001b0121b76f1ae11a5482b.tar.gz |
daemon: Add '--rounds'.
* nix/nix-daemon/guix-daemon.cc (GUIX_OPT_BUILD_ROUNDS): New macro.
(options): Add --rounds.
(parse_opt): Honor it.
* doc/guix.texi (Invoking guix-daemon): Document it.
Diffstat (limited to 'nix/nix-daemon/guix-daemon.cc')
-rw-r--r-- | nix/nix-daemon/guix-daemon.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/nix/nix-daemon/guix-daemon.cc b/nix/nix-daemon/guix-daemon.cc index 1934487d24..20a0732fcb 100644 --- a/nix/nix-daemon/guix-daemon.cc +++ b/nix/nix-daemon/guix-daemon.cc @@ -80,6 +80,7 @@ builds derivations on behalf of its clients."); #define GUIX_OPT_NO_BUILD_HOOK 14 #define GUIX_OPT_GC_KEEP_OUTPUTS 15 #define GUIX_OPT_GC_KEEP_DERIVATIONS 16 +#define GUIX_OPT_BUILD_ROUNDS 17 static const struct argp_option options[] = { @@ -104,6 +105,8 @@ static const struct argp_option options[] = n_("do not use the 'build hook'") }, { "cache-failures", GUIX_OPT_CACHE_FAILURES, 0, 0, n_("cache build failures") }, + { "rounds", GUIX_OPT_BUILD_ROUNDS, "N", 0, + n_("build each derivation N times in a row") }, { "lose-logs", GUIX_OPT_LOSE_LOGS, 0, 0, n_("do not keep build logs") }, { "disable-log-compression", GUIX_OPT_DISABLE_LOG_COMPRESSION, 0, 0, @@ -189,6 +192,18 @@ parse_opt (int key, char *arg, struct argp_state *state) case GUIX_OPT_CACHE_FAILURES: settings.cacheFailure = true; break; + case GUIX_OPT_BUILD_ROUNDS: + { + char *end; + unsigned long n = strtoul (arg, &end, 10); + if (end != arg + strlen (arg)) + { + fprintf (stderr, _("error: %s: invalid number of rounds\n"), arg); + exit (EXIT_FAILURE); + } + settings.set ("build-repeat", std::to_string (std::max (0UL, n - 1))); + break; + } case GUIX_OPT_IMPERSONATE_LINUX_26: settings.impersonateLinux26 = true; break; |