Parcourir la source

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.
pull/476/merge
lilydjwg il y a 9 ans
committed by William Ting
Parent
révision
8fffbad95a
1 fichiers modifiés avec 3 ajouts et 2 suppressions
  1. +3
    -2
      bin/autojump_data.py

+ 3
- 2
bin/autojump_data.py Voir le fichier

@ -120,11 +120,12 @@ def migrate_osx_xdg_data(config):
def save(config, data): def save(config, data):
"""Save data and create backup, creating a new data file if necessary.""" """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 # atomically save by writing to temporary file and moving to destination
try: try:
temp = NamedTemporaryFile(delete=False)
temp = NamedTemporaryFile(delete=False, dir=data_dir)
# Windows cannot reuse the same open file name # Windows cannot reuse the same open file name
temp.close() temp.close()

Chargement…
Annuler
Enregistrer