class GlobalSettings: def __init__(self): home = str(Path.home()) self._fileinfo = FileInfo(os.path.join(home, SYNC_CONFIG_NAME)) self._data = self._fileinfo.load() if self._fileinfo.is_exists( ) else {} def _save(self): self._fileinfo.dump(self._data) @property def token(self): return self._data.get('token') @token.setter def token(self, value): self._data['token'] = value self._save()
def configure_gitignore(proj_info: ProjectInfo): logger = get_logger() gitignore = FileInfo(proj_info.root_dir) if not gitignore.is_exists(): logger.info(f'{lightgreen(gitignore)} does not exists') return gitignore_text = gitignore.read_text().splitlines() gitignore_set = set(gitignore_text) appends = [] for line in GIT_IGNORES_VALUES: if line not in gitignore_set: appends.append(line) if appends: if GIT_IGNORES_HEADER in gitignore_set: raise NotImplementedError else: gitignore_text.append('') gitignore_text.append(GIT_IGNORES_HEADER) gitignore_text.extend(appends) gitignore.write_text('\n'.join(gitignore_text), append=False)