@name 修改指定项目 @author hwliang<2021-08-09> @param get { project_name: string<项目名称> project_cwd: string<项目目录> project_script: string<项目脚本> project_ps: string<项目备注信息> is_power_on
(self, get)
| 542 | |
| 543 | # 2024/7/16 上午10:46 编辑项目 |
| 544 | def modify_project(self, get): |
| 545 | ''' |
| 546 | @name 修改指定项目 |
| 547 | @author hwliang<2021-08-09> |
| 548 | @param get<dict_obj>{ |
| 549 | project_name: string<项目名称> |
| 550 | project_cwd: string<项目目录> |
| 551 | project_script: string<项目脚本> |
| 552 | project_ps: string<项目备注信息> |
| 553 | is_power_on: int<是否开机启动> 1:是 0:否 |
| 554 | run_user: string<运行用户> |
| 555 | max_memory_limit: int<最大内存限制> // 超出此值项目将被强制重启 |
| 556 | nodejs_version: string<nodejs版本> |
| 557 | } |
| 558 | @return dict |
| 559 | ''' |
| 560 | if not isinstance(get, public.dict_obj): return public.return_error('参数类型错误,需要dict_obj对像') |
| 561 | if not self.is_install_nodejs(get): |
| 562 | return public.returnResult(False, '请先安装nodejs版本管理器,并安装至少1个node.js版本', code=5) |
| 563 | project_find = self.get_project_find(get.project_name) |
| 564 | if not project_find: |
| 565 | return public.returnResult(False, '指定项目不存在: {}'.format(get.project_name), code=5) |
| 566 | |
| 567 | if not os.path.exists(get.project_cwd): |
| 568 | return public.returnResult(False, '项目目录不存在: {}'.format(get.project_cwd), code=5) |
| 569 | |
| 570 | get.project_type = get.get("project_type", None) |
| 571 | if get.project_type is None: |
| 572 | return public.returnResult(False, 'project_type参数不能为空', code=5) |
| 573 | if not get.project_type in ("nodejs", "pm2", "general"): |
| 574 | return public.returnResult(False, |
| 575 | '项目类型:{} 不合法, 暂时支持是nodejs/pm2/general'.format(get.project_type), |
| 576 | code=5) |
| 577 | get.project_name = get.get("project_name", None) |
| 578 | if get.project_name is None: |
| 579 | return public.returnResult(False, 'project_name参数不能为空', code=5) |
| 580 | |
| 581 | rebuild = False |
| 582 | get.project_cwd = get.get("project_cwd", "") |
| 583 | if get.project_cwd == "": |
| 584 | return public.returnResult(False, 'project_cwd参数不能为空', code=5) |
| 585 | if not os.path.exists(get.project_cwd): |
| 586 | return public.returnResult(False, '{} 指定项目目录不存在'.format(get.project_cwd), code=5) |
| 587 | if not os.path.isdir(get.project_cwd): |
| 588 | return public.returnResult(False, '{} 指定项目目录不是一个目录'.format(get.project_cwd), code=5) |
| 589 | |
| 590 | if hasattr(get, 'project_cwd'): |
| 591 | if get.project_cwd[-1] == '/': |
| 592 | get.project_cwd = get.project_cwd[:-1] |
| 593 | project_find['project_config']['project_cwd'] = get.project_cwd |
| 594 | project_find['project_config']['project_script'] = get.project_script.strip() |
| 595 | |
| 596 | get.project_file = get.get("project_file", "") |
| 597 | get.run_user = get.get("run_user", "www") |
| 598 | if hasattr(get, 'run_user'): project_find['project_config']['run_user'] = get.run_user |
| 599 | get.port = get.get("port", "") |
| 600 | if hasattr(get, 'port') and get.port != "": |
| 601 | if not project_find['project_config']['port'] is None: |