如果用户通过环境变量CODEDOG_SOURCE_DIR指定了项目代码目录,直接复用该代码目录 1. 如果目录已存在,更新代码 2. 如果该目录不存在,创建目录,拉取代码 :return:
(self, user_source_dir)
| 292 | CodeLineReporter(self.params).start() |
| 293 | |
| 294 | def __load_user_source_dir(self, user_source_dir): |
| 295 | """ |
| 296 | 如果用户通过环境变量CODEDOG_SOURCE_DIR指定了项目代码目录,直接复用该代码目录 |
| 297 | 1. 如果目录已存在,更新代码 |
| 298 | 2. 如果该目录不存在,创建目录,拉取代码 |
| 299 | :return: |
| 300 | """ |
| 301 | logger.info("已设置CODEDOG_SOURCE_DIR环境变量,使用指定的代码目录: %s" % user_source_dir) |
| 302 | user_source_dir = os.path.expanduser(user_source_dir) |
| 303 | if os.path.exists(user_source_dir): # 目录已存在,复用直接更新代码 |
| 304 | self.params["source_dir"] = user_source_dir |
| 305 | # 上报进度 |
| 306 | SourceReporter(self.task_type, self.params).cache_report() |
| 307 | self.__retry_update() |
| 308 | else: # 目录不存在,尝试创建目录并拉取代码 |
| 309 | try: |
| 310 | # 创建一个空目录,作为代码存放地址,后面拉代码时检查到目录存在,就不会随机指定一个目录名 |
| 311 | logger.info("指定的代码目录(%s)不存在,开始创建目录..." % user_source_dir) |
| 312 | os.makedirs(user_source_dir) |
| 313 | self.params["source_dir"] = user_source_dir |
| 314 | except Exception as err: |
| 315 | # 创建目录失败,后面拉代码会随机指定一个目录名 |
| 316 | logger.error("创建目录失败(%s) failed: %s" % (user_source_dir, str(err))) |
| 317 | |
| 318 | # 重新拉取代码 |
| 319 | sm = SCMMgr(self.params) |
| 320 | self.__retry_checkout(sm) |
| 321 | |
| 322 | def __checkout_data(self): |
| 323 | """ |
no test coverage detected