@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)
| 644 | return public.return_data(True, msg, project_id) |
| 645 | |
| 646 | def modify_project(self,get): |
| 647 | ''' |
| 648 | @name 修改指定项目 |
| 649 | @author hwliang<2021-08-09> |
| 650 | @param get<dict_obj>{ |
| 651 | project_name: string<项目名称> |
| 652 | project_cwd: string<项目目录> |
| 653 | project_script: string<项目脚本> |
| 654 | project_ps: string<项目备注信息> |
| 655 | is_power_on: int<是否开机启动> 1:是 0:否 |
| 656 | run_user: string<运行用户> |
| 657 | max_memory_limit: int<最大内存限制> // 超出此值项目将被强制重启 |
| 658 | nodejs_version: string<nodejs版本> |
| 659 | } |
| 660 | @return dict |
| 661 | ''' |
| 662 | if not isinstance(get,public.dict_obj): return public.return_error('参数类型错误,需要dict_obj对像') |
| 663 | if not self.is_install_nodejs(get): |
| 664 | return public.return_error('请先安装nodejs版本管理器,并安装至少1个node.js版本') |
| 665 | project_find = self.get_project_find(get.project_name) |
| 666 | if not project_find: |
| 667 | return public.return_error('指定项目不存在: {}'.format(get.project_name)) |
| 668 | |
| 669 | if not os.path.exists(get.project_cwd): |
| 670 | return public.return_error('项目目录不存在: {}'.format(get.project_cwd)) |
| 671 | rebuild = False |
| 672 | if hasattr(get,'port'): |
| 673 | if int(project_find['project_config']['port']) != int(get.port): |
| 674 | if self.check_port_is_used(get.get('port/port'),True): |
| 675 | return public.return_error('指定端口已被其它应用占用,请修改您的项目配置使用其它端口, 端口: {}'.format(get.port)) |
| 676 | project_find['project_config']['port'] = int(get.port) |
| 677 | if hasattr(get,'project_cwd'): |
| 678 | if get.project_cwd[-1] == '/': |
| 679 | get.project_cwd = get.project_cwd[:-1] |
| 680 | project_find['project_config']['project_cwd'] = get.project_cwd |
| 681 | if hasattr(get,'project_script'): |
| 682 | if not get.project_script.strip(): |
| 683 | return public.return_error('启动命令不能为空') |
| 684 | project_find['project_config']['project_script'] = get.project_script.strip() |
| 685 | if hasattr(get,'is_power_on'): project_find['project_config']['is_power_on'] = get.is_power_on |
| 686 | if hasattr(get, 'pkg_manager') and get.pkg_manager in ("npm", "pnpm", "yarn"): |
| 687 | project_find['project_config']['pkg_manager'] = get.pkg_manager |
| 688 | if hasattr(get,'run_user'): project_find['project_config']['run_user'] = get.run_user |
| 689 | if hasattr(get,'max_memory_limit'): project_find['project_config']['max_memory_limit'] = get.max_memory_limit |
| 690 | if hasattr(get,'nodejs_version'): |
| 691 | if project_find['project_config']['nodejs_version'] != get.nodejs_version: |
| 692 | rebuild = True |
| 693 | project_find['project_config']['nodejs_version'] = get.nodejs_version |
| 694 | if "pkg_manager" in project_find['project_config'] and project_find['project_config']['pkg_manager'] == "pnpm": |
| 695 | _v = int(project_find['project_config']['nodejs_version'].split(".", 1)[0][1:]) |
| 696 | if _v < 12: |
| 697 | return public.return_error("pnpm不支持Nodejs12以下的版本") |
| 698 | pdata = { |
| 699 | 'path': get.project_cwd, |
| 700 | 'ps': get.project_ps, |
| 701 | 'project_config': json.dumps(project_find['project_config']) |
| 702 | } |
| 703 |
nothing calls this directly
no test coverage detected