sapling/eden/fs/config/eden_config.thrift
Chad Austin a92cd39d70 rename ConfigSource to ConfigSourceType
Summary:
I'm about to introduce an interface named ConfigSource, which
awkwardly conflicts with this enum. Rename ConfigSource to
ConfigSourceType. I considered ConfigSourceSlot, but slot seems more
of an implementation detail.

Reviewed By: kmancini

Differential Revision: D41830066

fbshipit-source-id: 85a54f4243b14c693087c7555e27b5473e90562e
2022-12-10 05:09:52 -08:00

54 lines
1.7 KiB
Thrift

/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This software may be used and distributed according to the terms of the
* GNU General Public License version 2.
*/
namespace cpp2 facebook.eden
namespace java com.facebook.eden.thrift
namespace py facebook.eden.eden_config
namespace py3 eden.fs.config
/**
* Identifies the point of origin of a config setting. It is ordered from
* low to high precedence. Higher precedence configuration values over-ride
* lower precedence values. A config setting of CommandLine takes precedence
* over all other settings.
*/
enum ConfigSourceType {
Default = 0,
SystemConfig = 1,
UserConfig = 2,
CommandLine = 3,
}
enum ConfigReloadBehavior {
// Automatically reload the configuration file from disk if it appears to be
// necessary.
AutoReload = 0,
// Do not reload the config from disk, and return the current cached values.
NoReload = 1,
// Always attempt to reload the config from disk, even if we have recently
// checked to see if it was up-to-date.
ForceReload = 2,
}
struct ConfigValue {
// parsedValue contains the value parsed by Eden, after performing variable
// substitution (${HOME}, ${USER}, etc)
// TODO: In the future it may be nice to add a sourceValue field that
// contains the original value from before variable interpolation. We don't
// currently store this data after performing parsing, however.
1: string parsedValue;
2: ConfigSourceType sourceType;
// For configuration files, this is the path on the filesystem. For other
// sources, it's an empty string, though one could imagine a URL or
// otherwise.
3: binary sourcePath;
}
struct EdenConfigData {
1: map<string, ConfigValue> values;
}