| 251 | |
| 252 | |
| 253 | class ToolConfigLoader(object): |
| 254 | def load_tool_config(self, load_common_tools=True): |
| 255 | """ |
| 256 | 拉取|更新工具配置文件 |
| 257 | :return: |
| 258 | """ |
| 259 | tool_config = ToolConfig() |
| 260 | tool_config_url = tool_config.get_tool_config_url() |
| 261 | LogPrinter.info(f"Load tool config: {tool_config_url}") |
| 262 | tool_config_dir_name = tool_config.get_tool_config_dir_name() |
| 263 | tool_config_dir_path = tool_config.get_tool_config_dir_path() |
| 264 | load_type, dirpath_copy_from = ToolCommonLoader.load_tool_type(tool_config_dir_path, tool_config_dir_name, tool_config_url) |
| 265 | |
| 266 | ToolCommonLoader.load_tool(load_type, tool_config_dir_path, dirpath_copy_from, tool_config_url) |
| 267 | if load_common_tools: |
| 268 | self.load_common_tools_and_set_env() |
| 269 | |
| 270 | def load_common_tools_and_set_env(self): |
| 271 | """ |
| 272 | 拉取并加载所有common工具,包括zip工具,供后续解压工具zip包使用 |
| 273 | """ |
| 274 | tool_loader = ToolLoader(include_common=True) |
| 275 | LogPrinter.info(f"Initing common tools ...") |
| 276 | tool_loader.git_load_tools(print_enable=False) |
| 277 | tool_loader.set_tool_env() |
| 278 | self.setup_git_lfs() |
| 279 | |
| 280 | def setup_git_lfs(self): |
| 281 | """ |
| 282 | 拉取git lfs工具后,需要额外执行 git lfs install,避免部分机器lfs不可用:Skipping object checkout, Git LFS is not installed. |
| 283 | """ |
| 284 | try: |
| 285 | cmd_args = ["git", "lfs", "install"] |
| 286 | LogPrinter.info('run cmd: %s' % ' '.join(cmd_args)) |
| 287 | spc = SubProcController( |
| 288 | command=cmd_args, |
| 289 | stdout_line_callback=LogPrinter.info, |
| 290 | stderr_line_callback=LogPrinter.info, |
| 291 | stdout_filepath=None, |
| 292 | stderr_filepath=None |
| 293 | ) |
| 294 | spc.wait() |
| 295 | except Exception as err: |
| 296 | LogPrinter.error(f"git lfs cmd error: {str(err)}, please check.") |
no outgoing calls
no test coverage detected