|
@@ -13,24 +13,45 @@ from colorama import Fore, Style |
|
|
__all__ = ["get_bookmarks", "add_bookmarks", "delete_bookmarks", |
|
|
__all__ = ["get_bookmarks", "add_bookmarks", "delete_bookmarks", |
|
|
"list_bookmarks"] |
|
|
"list_bookmarks"] |
|
|
|
|
|
|
|
|
CONFIG_FILENAME = os.path.join(os.path.expanduser("~"), ".gitup") |
|
|
|
|
|
|
|
|
|
|
|
YELLOW = Fore.YELLOW + Style.BRIGHT |
|
|
YELLOW = Fore.YELLOW + Style.BRIGHT |
|
|
RED = Fore.RED + Style.BRIGHT |
|
|
RED = Fore.RED + Style.BRIGHT |
|
|
|
|
|
|
|
|
INDENT1 = " " * 3 |
|
|
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(): |
|
|
def _load_config_file(): |
|
|
"""Read the config file and return a SafeConfigParser() object.""" |
|
|
"""Read the config file and return a SafeConfigParser() object.""" |
|
|
|
|
|
_migrate_old_config_path() |
|
|
config = configparser.SafeConfigParser() |
|
|
config = configparser.SafeConfigParser() |
|
|
# Don't lowercase option names, because we are storing paths there: |
|
|
# Don't lowercase option names, because we are storing paths there: |
|
|
config.optionxform = str |
|
|
config.optionxform = str |
|
|
config.read(CONFIG_FILENAME) |
|
|
|
|
|
|
|
|
config.read(_get_config_path()) |
|
|
return config |
|
|
return config |
|
|
|
|
|
|
|
|
def _save_config_file(config): |
|
|
def _save_config_file(config): |
|
|
"""Save config changes to the config file specified by CONFIG_FILENAME.""" |
|
|
|
|
|
with open(CONFIG_FILENAME, "wb") as config_file: |
|
|
|
|
|
|
|
|
"""Save config changes to the config file returned by _get_config_path.""" |
|
|
|
|
|
_migrate_old_config_path() |
|
|
|
|
|
cfg_path = _get_config_path() |
|
|
|
|
|
_ensure_dirs(cfg_path) |
|
|
|
|
|
with open(cfg_path, "wb") as config_file: |
|
|
config.write(config_file) |
|
|
config.write(config_file) |
|
|
|
|
|
|
|
|
def get_bookmarks(): |
|
|
def get_bookmarks(): |
|
|