def update_symstore(): if not Common.is_dir_exists(project_symstoredir): print('') if not Inputer().requireBool({ 'tips' : '本机尚未克隆最新的符号仓库, 是否立刻进行克隆?', 'default' : False }): Message.ShowStatus('您主动放弃了继续操作') Common.exit_with_pause(-1) git.Repo.clone_from(symbols_giturl, project_symstoredir) else: repo = git.Repo(project_symstoredir) if not repo.is_dirty() and not repo.untracked_files: Message.ShowStatus('正在尝试拉取最新的符号数据...') try: repo.remotes.origin.pull() except git.GitError as _err: Message.ShowWarning('符号数据更新失败: %s' % _err) else: Message.ShowStatus('符号数据更新成功.') else: print('') if Inputer().requireBool({ 'tips' : '本地符号仓库的工作区不干净, 是否重置工作区?', 'default' : False }): repo.git.reset('--hard') repo.git.clean('-xdf') Message.ShowStatus('已成功重置本地符号仓库到干净状态.') else: Message.ShowWarning('本地符号仓库工作区不干净, 放弃更新符号数据..') print('')
def ensure_store(): if not Common.is_dir_exists(project_symstoredir): if not Inputer().requireBool({ 'tips' : '本机尚未克隆最新的符号仓库, 是否立刻进行克隆?', 'default' : False }): return False git.Repo.clone_from(symbols_giturl, project_symstoredir) return True
def get_vcvarsall_path(): ''' 读取第一个有效 Visual Studio 的 vcvarsall.bat 所在路径 如果检测不到则返回 None ''' for vs in vs_configure: path = get_reg_value(vs) vcvarsall_path = None if Common.is_dir_exists(path): vcvarsall_path = os.path.join(path, vs['vcvarsall']) if Common.is_file_exists(vcvarsall_path): return vcvarsall_path return None
def ensure_store_clean(): if not Common.is_dir_exists(project_symstoredir): return False repo = git.Repo(project_symstoredir) if not repo.is_dirty() and not repo.untracked_files: return True if Inputer().requireBool({ 'tips' : '本地符号仓库的工作区不干净, 是否重置工作区?', 'default' : False }): repo.git.reset('--hard') repo.git.clean('-xdf') Message.ShowStatus('已成功重置本地符号仓库到干净状态.') return True return False
def ensure_store(): if not Common.is_dir_exists(project_symstoredir): if not Inputer().requireBool({ 'tips': '本机尚未克隆最新的符号仓库, 是否立刻进行克隆?', 'default': False }): return False # 若环境变量为空则设置个默认值 if not os.getenv('DEFINE_REMOTE_SYMBOLS_URL'): os.environ[ "DEFINE_REMOTE_SYMBOLS_URL"] = "https://github.com/PandasWS/Symbols.git" Message.ShowWarning('可能会抛出 UnicodeDecodeError 错误, 请无视即可.') try: git.Repo.clone_from(os.getenv('DEFINE_REMOTE_SYMBOLS_URL'), project_symstoredir) except IndexError as _err: pass return True