diff --git a/client/codepuppy.py b/client/codepuppy.py index c9794e111..faf84bc91 100644 --- a/client/codepuppy.py +++ b/client/codepuppy.py @@ -37,6 +37,8 @@ def __init__(self): self._params = CmdArgParser.parse_args() # 日志输出设置 self.__setup_logger() + # 打印版本信息 + self.__print_client_version() if getattr(sys, 'frozen', False) and hasattr(sys, '_MEIPASS'): LogPrinter.info('running in a PyInstaller bundle') @@ -49,6 +51,12 @@ def __init__(self): # 默认git配置 GitConfig.set_default_config() + def __print_client_version(self): + """打印TCA客户端版本信息""" + LogPrinter.info("=" * 39) + LogPrinter.info(f"*** TCA Client v{settings.VERSION}({settings.EDITION.name} Beta) ***") + LogPrinter.info("=" * 39) + def __setup_logger(self): """日志打印配置 diff --git a/client/settings/edition.py b/client/settings/edition.py index df9932339..5f6a81f6e 100644 --- a/client/settings/edition.py +++ b/client/settings/edition.py @@ -28,4 +28,4 @@ class Edition(Enum): # 版本号 # ======================== # puppy版本号,格式:浮点数,整数部分为8位日期,小数部分为编号(从1开始) -VERSION = 20220907.1 +VERSION = 20240716.1 diff --git a/client/util/zipmgr.py b/client/util/zipmgr.py index f49a7c45f..0344d1f71 100644 --- a/client/util/zipmgr.py +++ b/client/util/zipmgr.py @@ -119,14 +119,24 @@ def decompress_by_7z(self, zip_file, path, print_enable=False): def decompress(self, zip_file, path): logger.info("zip模块执行解压操作...") # 20190927 bug-fixed, 防止在当前目录下删除当前目录,出现权限异常情况 - os.chdir("..") - if os.path.exists(path): - PathMgr().rmpath(path) + cur_dir = os.getcwd() + cur_dir_is_changed = False + if PathMgr().format_path(cur_dir) == PathMgr().format_path(path): + logger.info("Decompress dir is current dir, can not delete it directory, change to parent directory first.") + # 如果要删除的是当前工作目录,先切换到上层目录,再删除 + os.chdir("..") + cur_dir_is_changed = True - self.decompress_by_7z(zip_file, path, print_enable=True) - - if os.path.exists(WORK_DIR): - os.chdir(WORK_DIR) + try: + if os.path.exists(path): + PathMgr().rmpath(path) + + self.decompress_by_7z(zip_file, path, print_enable=True) + finally: + # 恢复进入到当前工作目录 + logger.info("Go back to the current working directory.") + if cur_dir_is_changed and os.path.exists(cur_dir): + os.chdir(cur_dir) return True def subprocc_log(self, line):