mirror of
https://github.com/matrix-construct/construct
synced 2024-11-25 16:22:35 +01:00
modules/s_conf: Add default_conf w/ console cmd to set item to default value.
This commit is contained in:
parent
cf46ad916c
commit
b8b6fbea37
2 changed files with 56 additions and 0 deletions
|
@ -832,6 +832,42 @@ console_cmd__conf__rehash(opt &out, const string_view &line)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
console_cmd__conf__default(opt &out, const string_view &line)
|
||||
{
|
||||
const params param{line, " ",
|
||||
{
|
||||
"prefix"
|
||||
}};
|
||||
|
||||
using prototype = void (const string_view &);
|
||||
static mods::import<prototype> default_conf
|
||||
{
|
||||
"s_conf", "default_conf"
|
||||
};
|
||||
|
||||
string_view prefix
|
||||
{
|
||||
param.at("prefix", "*"_sv)
|
||||
};
|
||||
|
||||
if(prefix == "*")
|
||||
prefix = string_view{};
|
||||
|
||||
default_conf(prefix);
|
||||
|
||||
out << "Set runtime conf items"
|
||||
<< (prefix? " with the prefix "_sv : string_view{})
|
||||
<< (prefix? prefix : string_view{})
|
||||
<< " to their default value."
|
||||
<< std::endl
|
||||
<< "Note: These values must be saved with the rehash command"
|
||||
<< " to survive a restart/reload."
|
||||
<< std::endl;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
console_cmd__conf__reload(opt &out, const string_view &line)
|
||||
{
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
using namespace ircd;
|
||||
|
||||
extern "C" void default_conf(const string_view &prefix);
|
||||
extern "C" void rehash_conf(const string_view &prefix, const bool &existing);
|
||||
extern "C" void reload_conf();
|
||||
extern "C" void refresh_conf();
|
||||
|
@ -290,6 +291,25 @@ rehash_conf(const string_view &prefix,
|
|||
}
|
||||
}
|
||||
|
||||
void
|
||||
default_conf(const string_view &prefix)
|
||||
{
|
||||
for(const auto &p : conf::items)
|
||||
{
|
||||
const auto &key{p.first};
|
||||
if(prefix && !startswith(key, prefix))
|
||||
continue;
|
||||
|
||||
const auto &item{p.second}; assert(item);
|
||||
const auto value
|
||||
{
|
||||
unquote(item->feature["default"])
|
||||
};
|
||||
|
||||
conf::set(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
reload_conf()
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue