Skip to content

Commit

Permalink
Merge pull request #235 from planet36/save_config_file
Browse files Browse the repository at this point in the history
Change how config file is saved
  • Loading branch information
mattrose authored Oct 14, 2020
2 parents 68d0be8 + 2d7f913 commit 44f538f
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions terminatorlib/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
"""

import os
import shutil
from copy import copy
from configobj import ConfigObj, flatten_errors
from validate import Validator
Expand Down Expand Up @@ -687,7 +688,7 @@ def reload(self):
"""Force a reload of the base config"""
self.loaded = False
self.load()

def save(self):
"""Save the config to a file"""
dbg('ConfigBase::save: saving config')
Expand Down Expand Up @@ -718,13 +719,19 @@ def save(self):
config_dir = get_config_dir()
if not os.path.isdir(config_dir):
os.makedirs(config_dir)

try:
temp_file = self.command_line_options.config + '.tmp'
if not os.path.isfile(self.command_line_options.config):
open(self.command_line_options.config, 'a').close()

backup_file = self.command_line_options.config + '~'

shutil.copy2(self.command_line_options.config, backup_file)

with open(temp_file, 'wb') as fh:
with open(self.command_line_options.config, 'wb') as fh:
parser.write(fh)

os.rename(temp_file, self.command_line_options.config)
os.remove(backup_file)
except Exception as ex:
err('ConfigBase::save: Unable to save config: %s' % ex)

Expand Down

0 comments on commit 44f538f

Please sign in to comment.