From d10919df5fb4ff0b103c08c2e074f382982a7678 Mon Sep 17 00:00:00 2001 From: Markus Frosch Date: Sun, 5 Apr 2020 16:59:50 +0200 Subject: [PATCH] config: Save config via temp file To avoid errors during save causing an empty config file --- terminatorlib/config.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/terminatorlib/config.py b/terminatorlib/config.py index 5e36a2e2..1e0092e9 100644 --- a/terminatorlib/config.py +++ b/terminatorlib/config.py @@ -70,7 +70,6 @@ KeyError: 'ConfigBase::get_item: unknown key algo' """ -import platform import os from copy import copy from configobj import ConfigObj, flatten_errors @@ -710,7 +709,12 @@ class ConfigBase(Borg): if not os.path.isdir(config_dir): os.makedirs(config_dir) try: - parser.write(open(self.command_line_options.config, 'wb')) + temp_file = self.command_line_options.config + '.tmp' + + with open(temp_file, 'wb') as fh: + parser.write(fh) + + os.rename(temp_file, self.command_line_options.config) except Exception as ex: err('ConfigBase::save: Unable to save config: %s' % ex)