Skip to content

Commit 0c09ca2

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

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+247
-137
lines changed

doc/manual/source/release-notes/rl-2.28.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ This completes the infrastructure overhaul for the [RFC 132](https://github.com/
4646
@@ @@
4747
-#include "config.hh"
4848
+// Additionally renamed to distinguish from components' config headers.
49-
+#include "nix/util/configuration.hh"
49+
+#include "nix/main/configuration.hh"
5050
@@ @@
5151
-#if HAVE_ACL_SUPPORT
5252
+#if NIX_SUPPORT_ACL

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/lockfile\.cc$''
181181
''^src/libflake/include/nix/flake/lockfile\.hh$''
182182
''^src/libflake/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/include/nix/main/common-args\.hh$''
188+
''^src/libmain/include/nix/main/config-impl\.hh$''
189+
''^src/libmain/config\.cc$''
190+
''^src/libmain/include/nix/main/config\.hh$''
185191
''^src/libmain/loggers\.cc$''
186192
''^src/libmain/include/nix/main/loggers\.hh$''
187193
''^src/libmain/progress-bar\.cc$''
@@ -314,19 +320,13 @@
314320
''^src/libutil-c/nix_api_util_internal\.h$''
315321
''^src/libutil/archive\.cc$''
316322
''^src/libutil/include/nix/util/archive\.hh$''
317-
''^src/libutil/args\.cc$''
318-
''^src/libutil/include/nix/util/args\.hh$''
319-
''^src/libutil/include/nix/util/args/root\.hh$''
320323
''^src/libutil/include/nix/util/callback\.hh$''
321324
''^src/libutil/canon-path\.cc$''
322325
''^src/libutil/include/nix/util/canon-path\.hh$''
323326
''^src/libutil/include/nix/util/chunked-vector\.hh$''
324327
''^src/libutil/include/nix/util/closure\.hh$''
325328
''^src/libutil/include/nix/util/comparator\.hh$''
326329
''^src/libutil/compute-levels\.cc$''
327-
''^src/libutil/include/nix/util/config-impl\.hh$''
328-
''^src/libutil/configuration\.cc$''
329-
''^src/libutil/include/nix/util/configuration\.hh$''
330330
''^src/libutil/current-process\.cc$''
331331
''^src/libutil/include/nix/util/current-process\.hh$''
332332
''^src/libutil/english\.cc$''

src/libcmd/common-eval-args.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#include "nix/expr/eval-settings.hh"
33
#include "nix/cmd/common-eval-args.hh"
44
#include "nix/main/shared.hh"
5-
#include "nix/util/config-global.hh"
5+
#include "nix/main/config-global.hh"
66
#include "nix/store/filetransfer.hh"
77
#include "nix/expr/eval.hh"
88
#include "nix/fetchers/fetchers.hh"

src/libcmd/include/nix/cmd/command.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
///@file
33

44
#include "nix/cmd/installable-value.hh"
5-
#include "nix/util/args.hh"
5+
#include "nix/main/args.hh"
66
#include "nix/cmd/common-eval-args.hh"
77
#include "nix/store/path.hh"
88
#include "nix/flake/lockfile.hh"

src/libcmd/include/nix/cmd/common-eval-args.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22
///@file
33

4-
#include "nix/util/args.hh"
4+
#include "nix/main/args.hh"
55
#include "nix/util/canon-path.hh"
66
#include "nix/main/common-args.hh"
77
#include "nix/expr/search-path.hh"

src/libcmd/include/nix/cmd/compatibility-settings.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#pragma once
2-
#include "nix/util/configuration.hh"
2+
#include "nix/main/configuration.hh"
33

44
namespace nix {
55
struct CompatibilitySettings : public Config

src/libcmd/include/nix/cmd/misc-store-flags.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "nix/util/args.hh"
1+
#include "nix/main/args.hh"
22
#include "nix/store/content-address.hh"
33

44
namespace nix::flag {

src/libexpr-c/nix_api_external.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "nix/expr/attr-set.hh"
2-
#include "nix/util/configuration.hh"
2+
#include "nix/main/configuration.hh"
33
#include "nix/expr/eval.hh"
44
#include "nix/store/globals.hh"
55
#include "nix/expr/value.hh"

src/libexpr-c/nix_api_value.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "nix/expr/attr-set.hh"
2-
#include "nix/util/configuration.hh"
2+
#include "nix/main/configuration.hh"
33
#include "nix/expr/eval.hh"
44
#include "nix/store/globals.hh"
55
#include "nix/store/path.hh"

src/libexpr/eval-gc.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "nix/util/error.hh"
22
#include "nix/util/environment-variables.hh"
33
#include "nix/expr/eval-settings.hh"
4-
#include "nix/util/config-global.hh"
4+
#include "nix/main/config-global.hh"
55
#include "nix/util/serialise.hh"
66
#include "nix/expr/eval-gc.hh"
77

src/libexpr/include/nix/expr/eval-settings.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22
///@file
33

4-
#include "nix/util/configuration.hh"
4+
#include "nix/main/configuration.hh"
55
#include "nix/util/source-path.hh"
66

77
namespace nix {

src/libexpr/include/nix/expr/eval.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
#include "nix/expr/value.hh"
99
#include "nix/expr/nixexpr.hh"
1010
#include "nix/expr/symbol-table.hh"
11-
#include "nix/util/configuration.hh"
11+
#include "nix/main/configuration.hh"
1212
#include "nix/util/experimental-features.hh"
1313
#include "nix/util/position.hh"
1414
#include "nix/util/pos-table.hh"

src/libfetchers/include/nix/fetchers/fetch-settings.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
///@file
33

44
#include "nix/util/types.hh"
5-
#include "nix/util/configuration.hh"
5+
#include "nix/main/configuration.hh"
66
#include "nix/util/ref.hh"
77
#include "nix/util/sync.hh"
88

src/libflake/config.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#include "nix/util/users.hh"
2-
#include "nix/util/config-global.hh"
2+
#include "nix/main/config-global.hh"
33
#include "nix/flake/settings.hh"
44
#include "nix/flake/flake.hh"
55

src/libflake/include/nix/flake/settings.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22
///@file
33

4-
#include "nix/util/configuration.hh"
4+
#include "nix/main/configuration.hh"
55

66
#include <sys/types.h>
77

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
#include "nix/util/args.hh"
2-
#include "nix/util/args/root.hh"
1+
#include "nix/main/args.hh"
2+
#include "nix/main/args/root.hh"
33
#include "nix/util/hash.hh"
44
#include "nix/util/environment-variables.hh"
55
#include "nix/util/signals.hh"

src/libmain/common-args.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
#include <nlohmann/json.hpp>
22

33
#include "nix/main/common-args.hh"
4-
#include "nix/util/args/root.hh"
5-
#include "nix/util/config-global.hh"
4+
#include "nix/main/args/root.hh"
5+
#include "nix/main/config-global.hh"
66
#include "nix/store/globals.hh"
77
#include "nix/util/logging.hh"
88
#include "nix/main/loggers.hh"

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#include "nix/util/config-global.hh"
1+
#include "nix/main/config-global.hh"
22

33
#include <nlohmann/json.hpp>
44

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 "nix/util/fs-sink.hh"
4+
#include "nix/util/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/configuration.cc renamed to src/libmain/configuration.cc

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
#include "nix/util/configuration.hh"
2-
#include "nix/util/args.hh"
3-
#include "nix/util/abstract-setting-to-json.hh"
1+
#include "nix/main/configuration.hh"
2+
#include "nix/main/args.hh"
3+
#include "nix/main/abstract-setting-to-json.hh"
44
#include "nix/util/environment-variables.hh"
55
#include "nix/util/experimental-features.hh"
66
#include "nix/util/util.hh"
77
#include "nix/util/file-system.hh"
88

9-
#include "nix/util/config-impl.hh"
9+
#include "nix/main/config-impl.hh"
1010

1111
#include <nlohmann/json.hpp>
1212

@@ -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
}

src/libutil/include/nix/util/abstract-setting-to-json.hh renamed to src/libmain/include/nix/main/abstract-setting-to-json.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
///@file
33

44
#include <nlohmann/json.hpp>
5-
#include "nix/util/configuration.hh"
5+
#include "nix/main/configuration.hh"
66
#include "nix/util/json-utils.hh"
77

88
namespace nix {

src/libutil/include/nix/util/args/root.hh renamed to src/libmain/include/nix/main/args/root.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#include "nix/util/args.hh"
3+
#include "nix/main/args.hh"
44

55
namespace nix {
66

src/libmain/include/nix/main/common-args.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22
///@file
33

4-
#include "nix/util/args.hh"
4+
#include "nix/main/args.hh"
55
#include "nix/util/repair-flag.hh"
66

77
namespace nix {

src/libutil/include/nix/util/config-global.hh renamed to src/libmain/include/nix/main/config-global.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#pragma once
22
///@file
33

4-
#include "nix/util/configuration.hh"
4+
#include "nix/main/configuration.hh"
55

66
namespace nix {
77

src/libutil/include/nix/util/config-impl.hh renamed to src/libmain/include/nix/main/config-impl.hh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
* instantiation.
1313
*/
1414

15-
#include "nix/util/configuration.hh"
16-
#include "nix/util/args.hh"
15+
#include "nix/main/configuration.hh"
16+
#include "nix/main/args.hh"
1717

1818
namespace nix {
1919

src/libutil/include/nix/util/configuration.hh renamed to src/libmain/include/nix/main/configuration.hh

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -258,10 +258,6 @@ public:
258258
, documentDefault(documentDefault)
259259
{ }
260260

261-
operator const T &() const { return value; }
262-
operator T &() { return value; }
263-
const T & get() const { return value; }
264-
T & get() { return value; }
265261
template<typename U>
266262
bool operator ==(const U & v2) const { return value == v2; }
267263
template<typename U>

src/libmain/include/nix/main/meson.build

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,13 @@
33
include_dirs = [include_directories('../..')]
44

55
headers = files(
6+
'abstract-setting-to-json.hh',
7+
'args.hh',
8+
'args/root.hh',
69
'common-args.hh',
10+
'config-impl.hh',
11+
'config-global.hh',
12+
'configuration.hh',
713
'loggers.hh',
814
'plugin.hh',
915
'progress-bar.hh',

src/libmain/include/nix/main/shared.hh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
#include "nix/util/file-descriptor.hh"
55
#include "nix/util/processes.hh"
6-
#include "nix/util/args.hh"
7-
#include "nix/util/args/root.hh"
6+
#include "nix/main/args.hh"
7+
#include "nix/main/args/root.hh"
88
#include "nix/main/common-args.hh"
99
#include "nix/store/path.hh"
1010
#include "nix/store/derived-path.hh"

src/libmain/meson.build

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ config_priv_h = configure_file(
5454
subdir('nix-meson-build-support/common')
5555

5656
sources = files(
57+
'args.cc',
5758
'common-args.cc',
59+
'configuration.cc',
5860
'loggers.cc',
5961
'plugin.cc',
6062
'progress-bar.cc',

src/libmain/plugin.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
#include <filesystem>
66

7-
#include "nix/util/config-global.hh"
7+
#include "nix/main/config-global.hh"
88
#include "nix/util/signals.hh"
99
#include "nix/util/file-system.hh"
1010

src/libstore/build/derivation-goal.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# include "nix/store/build/derivation-builder.hh"
66
#endif
77
#include "nix/util/processes.hh"
8-
#include "nix/util/config-global.hh"
8+
#include "nix/main/config-global.hh"
99
#include "nix/store/build/worker.hh"
1010
#include "nix/util/util.hh"
1111
#include "nix/util/compression.hh"

src/libstore/content-address.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#include "nix/util/args.hh"
21
#include "nix/store/content-address.hh"
32
#include "nix/util/split.hh"
3+
#include "nix/util/experimental-feature-settings.hh"
44

55
namespace nix {
66

src/libstore/daemon.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
#include "nix/util/finally.hh"
1414
#include "nix/util/archive.hh"
1515
#include "nix/store/derivations.hh"
16-
#include "nix/util/args.hh"
16+
#include "nix/main/args.hh"
1717
#include "nix/util/git.hh"
1818

1919
#ifndef _WIN32 // TODO need graceful async exit support on Windows?

src/libstore/filetransfer.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "nix/store/filetransfer.hh"
22
#include "nix/store/globals.hh"
3-
#include "nix/util/config-global.hh"
3+
#include "nix/main/config-global.hh"
44
#include "nix/store/store-api.hh"
55
#include "nix/store/s3.hh"
66
#include "nix/util/compression.hh"

0 commit comments

Comments
 (0)