mirror of
https://github.com/NixOS/nix
synced 2025-06-24 22:11:15 +02:00
WIP get settings info out of headers, out of libutil
Also make a tiny bit of progress on libstore
This commit is contained in:
parent
2ea9f59978
commit
b0e198cd03
66 changed files with 247 additions and 137 deletions
|
@ -46,7 +46,7 @@ This completes the infrastructure overhaul for the [RFC 132](https://github.com/
|
|||
@@ @@
|
||||
-#include "config.hh"
|
||||
+// Additionally renamed to distinguish from components' config headers.
|
||||
+#include "nix/util/configuration.hh"
|
||||
+#include "nix/main/configuration.hh"
|
||||
@@ @@
|
||||
-#if HAVE_ACL_SUPPORT
|
||||
+#if NIX_SUPPORT_ACL
|
||||
|
|
|
@ -180,8 +180,14 @@
|
|||
''^src/libflake/lockfile\.cc$''
|
||||
''^src/libflake/include/nix/flake/lockfile\.hh$''
|
||||
''^src/libflake/url-name\.cc$''
|
||||
''^src/libmain/args/root\.hh$''
|
||||
''^src/libmain/args\.cc$''
|
||||
''^src/libmain/args\.hh$''
|
||||
''^src/libmain/common-args\.cc$''
|
||||
''^src/libmain/include/nix/main/common-args\.hh$''
|
||||
''^src/libmain/include/nix/main/config-impl\.hh$''
|
||||
''^src/libmain/config\.cc$''
|
||||
''^src/libmain/include/nix/main/config\.hh$''
|
||||
''^src/libmain/loggers\.cc$''
|
||||
''^src/libmain/include/nix/main/loggers\.hh$''
|
||||
''^src/libmain/progress-bar\.cc$''
|
||||
|
@ -314,9 +320,6 @@
|
|||
''^src/libutil-c/nix_api_util_internal\.h$''
|
||||
''^src/libutil/archive\.cc$''
|
||||
''^src/libutil/include/nix/util/archive\.hh$''
|
||||
''^src/libutil/args\.cc$''
|
||||
''^src/libutil/include/nix/util/args\.hh$''
|
||||
''^src/libutil/include/nix/util/args/root\.hh$''
|
||||
''^src/libutil/include/nix/util/callback\.hh$''
|
||||
''^src/libutil/canon-path\.cc$''
|
||||
''^src/libutil/include/nix/util/canon-path\.hh$''
|
||||
|
@ -324,9 +327,6 @@
|
|||
''^src/libutil/include/nix/util/closure\.hh$''
|
||||
''^src/libutil/include/nix/util/comparator\.hh$''
|
||||
''^src/libutil/compute-levels\.cc$''
|
||||
''^src/libutil/include/nix/util/config-impl\.hh$''
|
||||
''^src/libutil/configuration\.cc$''
|
||||
''^src/libutil/include/nix/util/configuration\.hh$''
|
||||
''^src/libutil/current-process\.cc$''
|
||||
''^src/libutil/include/nix/util/current-process\.hh$''
|
||||
''^src/libutil/english\.cc$''
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include "nix/expr/eval-settings.hh"
|
||||
#include "nix/cmd/common-eval-args.hh"
|
||||
#include "nix/main/shared.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/store/filetransfer.hh"
|
||||
#include "nix/expr/eval.hh"
|
||||
#include "nix/fetchers/fetchers.hh"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
///@file
|
||||
|
||||
#include "nix/cmd/installable-value.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/cmd/common-eval-args.hh"
|
||||
#include "nix/store/path.hh"
|
||||
#include "nix/flake/lockfile.hh"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/util/canon-path.hh"
|
||||
#include "nix/main/common-args.hh"
|
||||
#include "nix/expr/search-path.hh"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#pragma once
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
|
||||
namespace nix {
|
||||
struct CompatibilitySettings : public Config
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "nix/util/args.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/store/content-address.hh"
|
||||
|
||||
namespace nix::flag {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix/expr/attr-set.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/expr/eval.hh"
|
||||
#include "nix/store/globals.hh"
|
||||
#include "nix/expr/value.hh"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix/expr/attr-set.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/expr/eval.hh"
|
||||
#include "nix/store/globals.hh"
|
||||
#include "nix/store/path.hh"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "nix/util/error.hh"
|
||||
#include "nix/util/environment-variables.hh"
|
||||
#include "nix/expr/eval-settings.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/util/serialise.hh"
|
||||
#include "nix/expr/eval-gc.hh"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/util/source-path.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
#include "nix/expr/value.hh"
|
||||
#include "nix/expr/nixexpr.hh"
|
||||
#include "nix/expr/symbol-table.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/util/experimental-features.hh"
|
||||
#include "nix/util/position.hh"
|
||||
#include "nix/util/pos-table.hh"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
///@file
|
||||
|
||||
#include "nix/util/types.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/util/ref.hh"
|
||||
#include "nix/util/sync.hh"
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix/util/users.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/flake/settings.hh"
|
||||
#include "nix/flake/flake.hh"
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix/util/args.hh"
|
||||
#include "nix/util/args/root.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/main/args/root.hh"
|
||||
#include "nix/util/hash.hh"
|
||||
#include "nix/util/environment-variables.hh"
|
||||
#include "nix/util/signals.hh"
|
|
@ -1,8 +1,8 @@
|
|||
#include <nlohmann/json.hpp>
|
||||
|
||||
#include "nix/main/common-args.hh"
|
||||
#include "nix/util/args/root.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/args/root.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/store/globals.hh"
|
||||
#include "nix/util/logging.hh"
|
||||
#include "nix/main/loggers.hh"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
44
src/libmain/config-upstream.cc
Normal file
44
src/libmain/config-upstream.cc
Normal file
|
@ -0,0 +1,44 @@
|
|||
namespace nix {
|
||||
|
||||
#include "nix/util/fs-sink.hh"
|
||||
#include "nix/util/logging.hh"
|
||||
|
||||
struct LoggerSettings : Config
|
||||
{
|
||||
Setting<bool> showTrace{
|
||||
this,
|
||||
false,
|
||||
"show-trace",
|
||||
R"(
|
||||
Whether Nix should print out a stack trace in case of Nix
|
||||
expression evaluation errors.
|
||||
)"};
|
||||
};
|
||||
|
||||
static GlobalConfig::Register r1(&restoreSinkSettings);
|
||||
|
||||
struct RestoreSinkSettings : Config
|
||||
{
|
||||
Setting<bool> preallocateContents{
|
||||
this, false, "preallocate-contents", "Whether to preallocate files when writing objects with known size."};
|
||||
};
|
||||
|
||||
static GlobalConfig::Register rLoggerSettings(&loggerSettings);
|
||||
|
||||
struct ArchiveSettings : Config
|
||||
{
|
||||
Setting<bool> useCaseHack
|
||||
{
|
||||
this,
|
||||
#if __APPLE__
|
||||
true,
|
||||
#else
|
||||
false,
|
||||
#endif
|
||||
"use-case-hack", "Whether to enable a macOS-specific hack for dealing with file name case collisions."
|
||||
};
|
||||
};
|
||||
|
||||
static GlobalConfig::Register rArchiveSettings(&archiveSettings);
|
||||
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/util/abstract-setting-to-json.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/main/abstract-setting-to-json.hh"
|
||||
#include "nix/util/environment-variables.hh"
|
||||
#include "nix/util/experimental-features.hh"
|
||||
#include "nix/util/util.hh"
|
||||
#include "nix/util/file-system.hh"
|
||||
|
||||
#include "nix/util/config-impl.hh"
|
||||
#include "nix/main/config-impl.hh"
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
|
@ -464,26 +464,4 @@ void OptionalPathSetting::operator =(const std::optional<Path> & v)
|
|||
this->assign(v);
|
||||
}
|
||||
|
||||
bool ExperimentalFeatureSettings::isEnabled(const ExperimentalFeature & feature) const
|
||||
{
|
||||
auto & f = experimentalFeatures.get();
|
||||
return std::find(f.begin(), f.end(), feature) != f.end();
|
||||
}
|
||||
|
||||
void ExperimentalFeatureSettings::require(const ExperimentalFeature & feature) const
|
||||
{
|
||||
if (!isEnabled(feature))
|
||||
throw MissingExperimentalFeature(feature);
|
||||
}
|
||||
|
||||
bool ExperimentalFeatureSettings::isEnabled(const std::optional<ExperimentalFeature> & feature) const
|
||||
{
|
||||
return !feature || isEnabled(*feature);
|
||||
}
|
||||
|
||||
void ExperimentalFeatureSettings::require(const std::optional<ExperimentalFeature> & feature) const
|
||||
{
|
||||
if (feature) require(*feature);
|
||||
}
|
||||
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
///@file
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/util/json-utils.hh"
|
||||
|
||||
namespace nix {
|
|
@ -1,6 +1,6 @@
|
|||
#pragma once
|
||||
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/args.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/util/repair-flag.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -12,8 +12,8 @@
|
|||
* instantiation.
|
||||
*/
|
||||
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/main/args.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
@ -258,10 +258,6 @@ public:
|
|||
, documentDefault(documentDefault)
|
||||
{ }
|
||||
|
||||
operator const T &() const { return value; }
|
||||
operator T &() { return value; }
|
||||
const T & get() const { return value; }
|
||||
T & get() { return value; }
|
||||
template<typename U>
|
||||
bool operator ==(const U & v2) const { return value == v2; }
|
||||
template<typename U>
|
|
@ -3,7 +3,13 @@
|
|||
include_dirs = [include_directories('../..')]
|
||||
|
||||
headers = files(
|
||||
'abstract-setting-to-json.hh',
|
||||
'args.hh',
|
||||
'args/root.hh',
|
||||
'common-args.hh',
|
||||
'config-impl.hh',
|
||||
'config-global.hh',
|
||||
'configuration.hh',
|
||||
'loggers.hh',
|
||||
'plugin.hh',
|
||||
'progress-bar.hh',
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include "nix/util/file-descriptor.hh"
|
||||
#include "nix/util/processes.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/util/args/root.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/main/args/root.hh"
|
||||
#include "nix/main/common-args.hh"
|
||||
#include "nix/store/path.hh"
|
||||
#include "nix/store/derived-path.hh"
|
||||
|
|
|
@ -54,7 +54,9 @@ config_priv_h = configure_file(
|
|||
subdir('nix-meson-build-support/common')
|
||||
|
||||
sources = files(
|
||||
'args.cc',
|
||||
'common-args.cc',
|
||||
'configuration.cc',
|
||||
'loggers.cc',
|
||||
'plugin.cc',
|
||||
'progress-bar.cc',
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
#include <filesystem>
|
||||
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/util/signals.hh"
|
||||
#include "nix/util/file-system.hh"
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
# include "nix/store/build/derivation-builder.hh"
|
||||
#endif
|
||||
#include "nix/util/processes.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/store/build/worker.hh"
|
||||
#include "nix/util/util.hh"
|
||||
#include "nix/util/compression.hh"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "nix/util/args.hh"
|
||||
#include "nix/store/content-address.hh"
|
||||
#include "nix/util/split.hh"
|
||||
#include "nix/util/experimental-feature-settings.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include "nix/util/finally.hh"
|
||||
#include "nix/util/archive.hh"
|
||||
#include "nix/store/derivations.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/util/git.hh"
|
||||
|
||||
#ifndef _WIN32 // TODO need graceful async exit support on Windows?
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "nix/store/filetransfer.hh"
|
||||
#include "nix/store/globals.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/store/store-api.hh"
|
||||
#include "nix/store/s3.hh"
|
||||
#include "nix/util/compression.hh"
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#include "nix/store/globals.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/util/current-process.hh"
|
||||
#include "nix/util/archive.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/util/abstract-setting-to-json.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/main/abstract-setting-to-json.hh"
|
||||
#include "nix/util/compute-levels.hh"
|
||||
#include "nix/util/signals.hh"
|
||||
|
||||
|
@ -29,7 +29,7 @@
|
|||
# include "nix/util/processes.hh"
|
||||
#endif
|
||||
|
||||
#include "nix/util/config-impl.hh"
|
||||
#include "nix/main/config-impl.hh"
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <sys/sysctl.h>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
#include "nix/store/config-parse.hh"
|
||||
#include "nix/util/util.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
|
||||
namespace nix::config {
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
|
||||
#include "nix/store/path.hh"
|
||||
#include "nix/store/outputs-spec.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/ref.hh"
|
||||
#include "nix/util/experimental-feature-settings.hh"
|
||||
|
||||
#include <variant>
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include "nix/util/logging.hh"
|
||||
#include "nix/util/types.hh"
|
||||
#include "nix/util/ref.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/util/serialise.hh"
|
||||
|
||||
namespace nix {
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
#include <sys/types.h>
|
||||
|
||||
#include "nix/util/types.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/util/environment-variables.hh"
|
||||
#include "nix/util/experimental-features.hh"
|
||||
#include "nix/util/users.hh"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix/store/globals.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/store/build/hook-instance.hh"
|
||||
#include "nix/util/file-system.hh"
|
||||
#include "nix/store/build/child.hh"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix_api_util.h"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/util/error.hh"
|
||||
#include "nix_api_util_internal.h"
|
||||
#include "nix/util/util.hh"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "nix/util/args.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix/util/fs-sink.hh"
|
||||
#include <list>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/configuration.hh"
|
||||
#include "nix/main/args.hh"
|
||||
|
||||
#include <sstream>
|
||||
#include <gtest/gtest.h>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#include "nix/util/config-global.hh"
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/main/args.hh"
|
||||
#include "nix_api_util.h"
|
||||
#include "nix_api_util_internal.h"
|
||||
#include "nix/util/tests/nix_api_util.hh"
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
#include <strings.h> // for strcasecmp
|
||||
|
||||
#include "nix/util/archive.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/util/posix-source-accessor.hh"
|
||||
#include "nix/util/source-path.hh"
|
||||
#include "nix/util/file-system.hh"
|
||||
|
@ -14,21 +13,19 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
struct ArchiveSettings : Config
|
||||
{
|
||||
Setting<bool> useCaseHack{this,
|
||||
#ifdef __APPLE__
|
||||
true,
|
||||
#else
|
||||
false,
|
||||
#endif
|
||||
"use-case-hack",
|
||||
"Whether to enable a macOS-specific hack for dealing with file name case collisions."};
|
||||
const extern ArchiveSettings<config::JustValue> archiveSettingsDefaults = {
|
||||
.useCaseHack = {
|
||||
.value =
|
||||
#ifdef __APPLE__
|
||||
true
|
||||
#else
|
||||
false
|
||||
#endif
|
||||
},
|
||||
};
|
||||
|
||||
static ArchiveSettings archiveSettings;
|
||||
ArchiveSettings<config::JustValue> archiveSettings = archiveSettingsDefaults;
|
||||
|
||||
static GlobalConfig::Register rArchiveSettings(&archiveSettings);
|
||||
|
||||
PathFilter defaultPathFilter = [](const Path &) { return true; };
|
||||
|
||||
|
|
37
src/libutil/experimental-feature-settings.cc
Normal file
37
src/libutil/experimental-feature-settings.cc
Normal file
|
@ -0,0 +1,37 @@
|
|||
#include "nix/util/experimental-feature-settings.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
const extern ExperimentalFeatureSettings experimentalFeatureSettingsDefaults = {{
|
||||
.experimentalFeatures =
|
||||
{
|
||||
.value = {},
|
||||
},
|
||||
}};
|
||||
|
||||
ExperimentalFeatureSettings experimentalFeatureSettings = experimentalFeatureSettingsDefaults;
|
||||
|
||||
bool ExperimentalFeatureSettings::isEnabled(const ExperimentalFeature & feature) const
|
||||
{
|
||||
auto & f = experimentalFeatures.get();
|
||||
return std::find(f.begin(), f.end(), feature) != f.end();
|
||||
}
|
||||
|
||||
void ExperimentalFeatureSettings::require(const ExperimentalFeature & feature) const
|
||||
{
|
||||
if (!isEnabled(feature))
|
||||
throw MissingExperimentalFeature(feature);
|
||||
}
|
||||
|
||||
bool ExperimentalFeatureSettings::isEnabled(const std::optional<ExperimentalFeature> & feature) const
|
||||
{
|
||||
return !feature || isEnabled(*feature);
|
||||
}
|
||||
|
||||
void ExperimentalFeatureSettings::require(const std::optional<ExperimentalFeature> & feature) const
|
||||
{
|
||||
if (feature)
|
||||
require(*feature);
|
||||
}
|
||||
|
||||
};
|
|
@ -1,7 +1,6 @@
|
|||
#include <fcntl.h>
|
||||
|
||||
#include "nix/util/error.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/util/fs-sink.hh"
|
||||
|
||||
#ifdef _WIN32
|
||||
|
@ -62,15 +61,7 @@ void copyRecursive(
|
|||
}
|
||||
|
||||
|
||||
struct RestoreSinkSettings : Config
|
||||
{
|
||||
Setting<bool> preallocateContents{this, false, "preallocate-contents",
|
||||
"Whether to preallocate files when writing objects with known size."};
|
||||
};
|
||||
|
||||
static RestoreSinkSettings restoreSinkSettings;
|
||||
|
||||
static GlobalConfig::Register r1(&restoreSinkSettings);
|
||||
RestoreSinkSettings<config::JustValue> restoreSinkSettings;
|
||||
|
||||
static std::filesystem::path append(const std::filesystem::path & src, const CanonPath & path)
|
||||
{
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include <strings.h> // for strcasecmp
|
||||
|
||||
#include "nix/util/signals.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/config-abstract.hh"
|
||||
#include "nix/util/hash.hh"
|
||||
|
||||
#include "nix/util/git.hh"
|
||||
|
|
|
@ -6,10 +6,9 @@
|
|||
#include <openssl/md5.h>
|
||||
#include <openssl/sha.h>
|
||||
|
||||
#include "nix/util/args.hh"
|
||||
#include "nix/util/hash.hh"
|
||||
#include "nix/util/archive.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/experimental-feature-settings.hh"
|
||||
#include "nix/util/split.hh"
|
||||
|
||||
#include <sys/types.h>
|
||||
|
|
|
@ -2,12 +2,23 @@
|
|||
///@file
|
||||
|
||||
#include "nix/util/types.hh"
|
||||
#include "nix/util/config-abstract.hh"
|
||||
#include "nix/util/serialise.hh"
|
||||
#include "nix/util/fs-sink.hh"
|
||||
|
||||
|
||||
namespace nix {
|
||||
|
||||
template<template<typename> class R>
|
||||
struct ArchiveSettings
|
||||
{
|
||||
R<bool> useCaseHack;
|
||||
};
|
||||
|
||||
const extern ArchiveSettings<config::JustValue> archiveSettingsDefaults;
|
||||
|
||||
// FIXME: don't use a global variable.
|
||||
extern ArchiveSettings<config::JustValue> archiveSettings;
|
||||
|
||||
/**
|
||||
* dumpPath creates a Nix archive of the specified path.
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/experimental-features.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
template<template<typename> class R>
|
||||
struct ExperimentalFeatureSettingsT
|
||||
{
|
||||
R<std::set<ExperimentalFeature>> experimentalFeatures;
|
||||
};
|
||||
|
||||
struct ExperimentalFeatureSettings : ExperimentalFeatureSettingsT<config::JustValue>
|
||||
{
|
||||
/**
|
||||
* Check whether the given experimental feature is enabled.
|
||||
*/
|
||||
bool isEnabled(const ExperimentalFeature &) const;
|
||||
|
||||
/**
|
||||
* Require an experimental feature be enabled, throwing an error if it is
|
||||
* not.
|
||||
*/
|
||||
void require(const ExperimentalFeature &) const;
|
||||
|
||||
/**
|
||||
* `std::nullopt` pointer means no feature, which means there is nothing that could be
|
||||
* disabled, and so the function returns true in that case.
|
||||
*/
|
||||
bool isEnabled(const std::optional<ExperimentalFeature> &) const;
|
||||
|
||||
/**
|
||||
* `std::nullopt` pointer means no feature, which means there is nothing that could be
|
||||
* disabled, and so the function does nothing in that case.
|
||||
*/
|
||||
void require(const std::optional<ExperimentalFeature> &) const;
|
||||
};
|
||||
|
||||
const extern ExperimentalFeatureSettings experimentalFeatureSettingsDefaults;
|
||||
|
||||
// FIXME: don't use a global variable.
|
||||
extern ExperimentalFeatureSettings experimentalFeatureSettings;
|
||||
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/config-abstract.hh"
|
||||
#include "nix/util/error.hh"
|
||||
#include "nix/util/types.hh"
|
||||
|
||||
|
|
|
@ -1,12 +1,20 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/config-abstract.hh"
|
||||
#include "nix/util/serialise.hh"
|
||||
#include "nix/util/source-accessor.hh"
|
||||
#include "nix/util/file-system.hh"
|
||||
|
||||
namespace nix {
|
||||
|
||||
template<template<typename> class R>
|
||||
struct RestoreSinkSettings
|
||||
{
|
||||
R<bool> preallocateContents;
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Actions on an open regular file in the process of creating it.
|
||||
*
|
||||
|
@ -22,6 +30,8 @@ struct CreateRegularFileSink : Sink
|
|||
virtual void preallocateContents(uint64_t size) { };
|
||||
};
|
||||
|
||||
// FIXME: don't use a global variable.
|
||||
extern RestoreSinkSettings<config::JustValue> restoreSinkSettings;
|
||||
|
||||
struct FileSystemObjectSink
|
||||
{
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include <optional>
|
||||
|
||||
#include "nix/util/types.hh"
|
||||
#include "nix/util/experimental-feature-settings.hh"
|
||||
#include "nix/util/serialise.hh"
|
||||
#include "nix/util/hash.hh"
|
||||
#include "nix/util/source-path.hh"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#pragma once
|
||||
///@file
|
||||
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/experimental-feature-settings.hh"
|
||||
#include "nix/util/types.hh"
|
||||
#include "nix/util/serialise.hh"
|
||||
#include "nix/util/file-system.hh"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
///@file
|
||||
|
||||
#include "nix/util/error.hh"
|
||||
#include "nix/util/configuration.hh"
|
||||
#include "nix/util/config-abstract.hh"
|
||||
#include "nix/util/file-descriptor.hh"
|
||||
#include "nix/util/finally.hh"
|
||||
|
||||
|
@ -41,17 +41,13 @@ typedef enum {
|
|||
|
||||
typedef uint64_t ActivityId;
|
||||
|
||||
struct LoggerSettings : Config
|
||||
template<template<typename> class R>
|
||||
struct LoggerSettings
|
||||
{
|
||||
Setting<bool> showTrace{
|
||||
this, false, "show-trace",
|
||||
R"(
|
||||
Whether Nix should print out a stack trace in case of Nix
|
||||
expression evaluation errors.
|
||||
)"};
|
||||
R<bool> showTrace;
|
||||
};
|
||||
|
||||
extern LoggerSettings loggerSettings;
|
||||
extern LoggerSettings<config::JustValue> loggerSettings;
|
||||
|
||||
class Logger
|
||||
{
|
||||
|
|
|
@ -3,11 +3,8 @@
|
|||
include_dirs = [include_directories('../..')]
|
||||
|
||||
headers = files(
|
||||
'abstract-setting-to-json.hh',
|
||||
'ansicolor.hh',
|
||||
'archive.hh',
|
||||
'args.hh',
|
||||
'args/root.hh',
|
||||
'callback.hh',
|
||||
'canon-path.hh',
|
||||
'checked-arithmetic.hh',
|
||||
|
@ -17,9 +14,7 @@ headers = files(
|
|||
'compression.hh',
|
||||
'compute-levels.hh',
|
||||
'config-abstract.hh',
|
||||
'config-global.hh',
|
||||
'config-impl.hh',
|
||||
'configuration.hh',
|
||||
'config-abstract.hh',
|
||||
'current-process.hh',
|
||||
'english.hh',
|
||||
'environment-variables.hh',
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
#include "nix/util/environment-variables.hh"
|
||||
#include "nix/util/terminal.hh"
|
||||
#include "nix/util/util.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/util/source-path.hh"
|
||||
#include "nix/util/position.hh"
|
||||
#include "nix/util/sync.hh"
|
||||
|
@ -15,9 +14,13 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
LoggerSettings loggerSettings;
|
||||
const extern LoggerSettings<config::JustValue> loggerSettingsDefaults = {
|
||||
.showTrace = {
|
||||
.value = false
|
||||
},
|
||||
};
|
||||
|
||||
static GlobalConfig::Register rLoggerSettings(&loggerSettings);
|
||||
LoggerSettings<config::JustValue> loggerSettings = loggerSettingsDefaults;
|
||||
|
||||
static thread_local ActivityId curActivity = 0;
|
||||
|
||||
|
|
|
@ -110,18 +110,16 @@ subdir('nix-meson-build-support/common')
|
|||
|
||||
sources = [config_priv_h] + files(
|
||||
'archive.cc',
|
||||
'args.cc',
|
||||
'canon-path.cc',
|
||||
'compression.cc',
|
||||
'compute-levels.cc',
|
||||
'configuration.cc',
|
||||
'config-global.cc',
|
||||
'current-process.cc',
|
||||
'english.cc',
|
||||
'environment-variables.cc',
|
||||
'error.cc',
|
||||
'executable-path.cc',
|
||||
'exit.cc',
|
||||
'experimental-feature-settings.cc',
|
||||
'experimental-features.cc',
|
||||
'file-content-address.cc',
|
||||
'file-descriptor.cc',
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#include "nix/main/common-args.hh"
|
||||
#include "nix/main/shared.hh"
|
||||
#include "nix/store/store-api.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/expr/eval.hh"
|
||||
#include "nix/cmd/installable-flake.hh"
|
||||
#include "nix/cmd/command-installable-value.hh"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "nix/util/args/root.hh"
|
||||
#include "nix/main/args/root.hh"
|
||||
#include "nix/util/current-process.hh"
|
||||
#include "nix/cmd/command.hh"
|
||||
#include "nix/main/common-args.hh"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "nix/expr/eval.hh"
|
||||
#include "nix/expr/eval-settings.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/store/globals.hh"
|
||||
#include "nix/store/store-open.hh"
|
||||
#include "nix/cmd/command.hh"
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "nix/util/serialise.hh"
|
||||
#include "nix/util/archive.hh"
|
||||
#include "nix/store/globals.hh"
|
||||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/store/derivations.hh"
|
||||
#include "nix/util/finally.hh"
|
||||
#include "nix/cmd/legacy.hh"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#include "nix/util/config-global.hh"
|
||||
#include "nix/main/config-global.hh"
|
||||
#include "nix/expr/primops.hh"
|
||||
|
||||
using namespace nix;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue