Skip to content

Commit 88c62b2

Browse files
committed
WIP get settings info out of headers, out of libutil
Also make a tiny bit of progress on libstore
1 parent 6ba8c57 commit 88c62b2

27 files changed

+190
-80
lines changed

maintainers/flake-module.nix

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -180,8 +180,14 @@
180180
''^src/libflake/flake/lockfile\.cc$''
181181
''^src/libflake/flake/lockfile\.hh$''
182182
''^src/libflake/flake/url-name\.cc$''
183+
''^src/libmain/args/root\.hh$''
184+
''^src/libmain/args\.cc$''
185+
''^src/libmain/args\.hh$''
183186
''^src/libmain/common-args\.cc$''
184187
''^src/libmain/common-args\.hh$''
188+
''^src/libmain/config-impl\.hh$''
189+
''^src/libmain/config\.cc$''
190+
''^src/libmain/config\.hh$''
185191
''^src/libmain/loggers\.cc$''
186192
''^src/libmain/loggers\.hh$''
187193
''^src/libmain/progress-bar\.cc$''
@@ -312,19 +318,13 @@
312318
''^src/libutil-c/nix_api_util_internal\.h$''
313319
''^src/libutil/archive\.cc$''
314320
''^src/libutil/archive\.hh$''
315-
''^src/libutil/args\.cc$''
316-
''^src/libutil/args\.hh$''
317-
''^src/libutil/args/root\.hh$''
318321
''^src/libutil/callback\.hh$''
319322
''^src/libutil/canon-path\.cc$''
320323
''^src/libutil/canon-path\.hh$''
321324
''^src/libutil/chunked-vector\.hh$''
322325
''^src/libutil/closure\.hh$''
323326
''^src/libutil/comparator\.hh$''
324327
''^src/libutil/compute-levels\.cc$''
325-
''^src/libutil/config-impl\.hh$''
326-
''^src/libutil/config\.cc$''
327-
''^src/libutil/config\.hh$''
328328
''^src/libutil/current-process\.cc$''
329329
''^src/libutil/current-process\.hh$''
330330
''^src/libutil/english\.cc$''
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

src/libmain/config-upstream.cc

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
namespace nix {
2+
3+
#include "fs-sink.hh"
4+
#include "logging.hh"
5+
6+
struct LoggerSettings : Config
7+
{
8+
Setting<bool> showTrace{
9+
this,
10+
false,
11+
"show-trace",
12+
R"(
13+
Whether Nix should print out a stack trace in case of Nix
14+
expression evaluation errors.
15+
)"};
16+
};
17+
18+
static GlobalConfig::Register r1(&restoreSinkSettings);
19+
20+
struct RestoreSinkSettings : Config
21+
{
22+
Setting<bool> preallocateContents{
23+
this, false, "preallocate-contents", "Whether to preallocate files when writing objects with known size."};
24+
};
25+
26+
static GlobalConfig::Register rLoggerSettings(&loggerSettings);
27+
28+
struct ArchiveSettings : Config
29+
{
30+
Setting<bool> useCaseHack
31+
{
32+
this,
33+
#if __APPLE__
34+
true,
35+
#else
36+
false,
37+
#endif
38+
"use-case-hack", "Whether to enable a macOS-specific hack for dealing with file name case collisions."
39+
};
40+
};
41+
42+
static GlobalConfig::Register rArchiveSettings(&archiveSettings);
43+
44+
}

src/libutil/config.cc renamed to src/libmain/config.cc

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -464,26 +464,4 @@ void OptionalPathSetting::operator =(const std::optional<Path> & v)
464464
this->assign(v);
465465
}
466466

467-
bool ExperimentalFeatureSettings::isEnabled(const ExperimentalFeature & feature) const
468-
{
469-
auto & f = experimentalFeatures.get();
470-
return std::find(f.begin(), f.end(), feature) != f.end();
471-
}
472-
473-
void ExperimentalFeatureSettings::require(const ExperimentalFeature & feature) const
474-
{
475-
if (!isEnabled(feature))
476-
throw MissingExperimentalFeature(feature);
477-
}
478-
479-
bool ExperimentalFeatureSettings::isEnabled(const std::optional<ExperimentalFeature> & feature) const
480-
{
481-
return !feature || isEnabled(*feature);
482-
}
483-
484-
void ExperimentalFeatureSettings::require(const std::optional<ExperimentalFeature> & feature) const
485-
{
486-
if (feature) require(*feature);
487-
}
488-
489467
}

0 commit comments

Comments
 (0)