Browse Source

Migrate old config files (#12)

tags/v0.2.4
Ben Kurtovic 9 years ago
parent
commit
6e6db21533
1 changed files with 17 additions and 3 deletions
  1. +17
    -3
      gitup/config.py

+ 17
- 3
gitup/config.py View File

@@ -18,13 +18,28 @@ RED = Fore.RED + Style.BRIGHT

INDENT1 = " " * 3

def _ensure_dirs(path):
"""Ensure the directories within the given pathname exist."""
dirname = os.path.dirname(path)
if not os.path.exists(dirname): # Race condition, meh...
os.makedirs(dirname)

def _get_config_path():
"""Return the path to the configuration file."""
xdg_cfg = os.environ.get("XDG_CONFIG_HOME") or os.path.join("~", ".config")
return os.path.join(os.path.expanduser(xdg_cfg), "gitup", "config.ini")

def _migrate_old_config_path():
"""Migrate the old config location (~/.gitup) to the new one."""
old_path = os.path.expanduser(os.path.join("~", ".gitup"))
if os.path.exists(old_path):
new_path = _get_config_path()
_ensure_dirs(new_path)
os.rename(old_path, new_path)

def _load_config_file():
"""Read the config file and return a SafeConfigParser() object."""
_migrate_old_config_path()
config = configparser.SafeConfigParser()
# Don't lowercase option names, because we are storing paths there:
config.optionxform = str
@@ -33,10 +48,9 @@ def _load_config_file():

def _save_config_file(config):
"""Save config changes to the config file returned by _get_config_path."""
_migrate_old_config_path()
cfg_path = _get_config_path()
if not os.path.exists(os.path.dirname(cfg_path)): # Race condition, meh...
os.makedirs(os.path.dirname(cfg_path))

_ensure_dirs(cfg_path)
with open(cfg_path, "wb") as config_file:
config.write(config_file)



Loading…
Cancel
Save