CLI: Fail on overwriting a config file

This commit is contained in:
Mike Auty
2022-03-16 20:36:26 +00:00
parent 0f4f4f2b3a
commit cb8a1fb90c
2 changed files with 4 additions and 14 deletions
+2 -7
View File
@@ -324,18 +324,13 @@ class CommandLine:
constructed = plugins.construct_plugin(ctx, automagics, plugin, base_config_path, progress_callback,
self.file_handler_class_factory())
backup_filename = constants.BACKUP_EXISTING_CONFIG_OUTPUT
if args.write_config:
vollog.warning('Use of --write-config has been deprecated, replaced by --save-config <filename>')
args.save_config = 'config.json'
backup_filename = False
if args.save_config:
vollog.debug("Writing out configuration data to {args.save_config}")
if os.path.exists(os.path.abspath(args.save_config)) and backup_filename:
# Backup existing file
backup_filename = self.find_backup_filename(args.save_config)
vollog.debug(f"Backing up existing file to {backup_filename}")
os.rename(args.save_config, backup_filename)
if os.path.exists(os.path.abspath(args.save_config)):
parser.error(f"Cannot write configuration: file {args.save_config} already exists")
with open(args.save_config, "w") as f:
json.dump(dict(constructed.build_configuration()), f, sort_keys = True, indent = 2)
except exceptions.UnsatisfiedException as excp:
+2 -7
View File
@@ -237,18 +237,13 @@ class VolShell(cli.CommandLine):
constructed = plugins.construct_plugin(ctx, automagics, plugin, base_config_path, progress_callback,
self.file_handler_class_factory())
backup_filename = constants.BACKUP_EXISTING_CONFIG_OUTPUT
if args.write_config:
vollog.warning('Use of --write-config has been deprecated, replaced by --save-config <filename>')
args.save_config = 'config.json'
backup_filename = False
if args.save_config:
vollog.debug("Writing out configuration data to {args.save_config}")
if os.path.exists(os.path.abspath(args.save_config)) and backup_filename:
# Backup existing file
backup_filename = self.find_backup_filename(args.save_config)
vollog.debug(f"Backing up existing file to {backup_filename}")
os.rename(args.save_config, backup_filename)
if os.path.exists(os.path.abspath(args.save_config)):
parser.error(f"Cannot write configuration: file {args.save_config} already exists")
with open(args.save_config, "w") as f:
json.dump(dict(constructed.build_configuration()), f, sort_keys = True, indent = 2)
except exceptions.UnsatisfiedException as excp: