1
0

config: "serverfingerprint" key requires "server" key

follow-up prev
This commit is contained in:
SomberNight
2020-04-24 17:17:12 +02:00
parent ca1046bce2
commit 69de3b94db
2 changed files with 21 additions and 4 deletions

View File

@@ -88,6 +88,8 @@ class SimpleConfig(Logger):
# avoid new config getting upgraded
self.user_config = {'config_version': FINAL_CONFIG_VERSION}
self._not_modifiable_keys = set()
# config "upgrade" - CLI options
self.rename_config_keys(
self.cmdline_options, {'auto_cycle': 'auto_connect'}, True)
@@ -96,6 +98,8 @@ class SimpleConfig(Logger):
if self.requires_upgrade():
self.upgrade()
self._check_dependent_keys()
def electrum_path(self):
# Read electrum_path from command line
# Otherwise use the user's default data directory.
@@ -159,6 +163,12 @@ class SimpleConfig(Logger):
out = self.user_config.get(key, default)
return out
def _check_dependent_keys(self) -> None:
if self.get('serverfingerprint'):
if not self.get('server'):
raise Exception("config key 'serverfingerprint' requires 'server' to also be set")
self.make_key_not_modifiable('server')
def requires_upgrade(self):
return self.get_config_version() < FINAL_CONFIG_VERSION
@@ -221,8 +231,12 @@ class SimpleConfig(Logger):
.format(config_version, FINAL_CONFIG_VERSION))
return config_version
def is_modifiable(self, key):
return key not in self.cmdline_options
def is_modifiable(self, key) -> bool:
return (key not in self.cmdline_options
and key not in self._not_modifiable_keys)
def make_key_not_modifiable(self, key) -> None:
self._not_modifiable_keys.add(key)
def save_user_config(self):
if self.get('forget_config'):