1
0
mirror of https://github.com/wting/autojump synced 2024-10-27 20:34:07 +00:00

put temporary data file in the same director as the data file itself

This should make shutil.move use rename, which is atomic, avoiding
losing data when interweaving writes happen.

This will close joelthelion/autojump#358.
This commit is contained in:
lilydjwg 2015-03-13 15:25:29 +08:00
parent b06d686bfe
commit bdc91924dd

View File

@ -120,11 +120,12 @@ def migrate_osx_xdg_data(config):
def save(config, data):
"""Save data and create backup, creating a new data file if necessary."""
create_dir(os.path.dirname(config['data_path']))
data_dir = os.path.dirname(config['data_path'])
create_dir(data_dir)
# atomically save by writing to temporary file and moving to destination
try:
temp = NamedTemporaryFile(delete=False)
temp = NamedTemporaryFile(delete=False, dir=data_dir)
# Windows cannot reuse the same open file name
temp.close()