MCPcopy Create free account
hub / github.com/aaPanel/BaoTa / modify_project

Method modify_project

class/projectModel/nodejsModel.py:646–709  ·  view source on GitHub ↗

@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)

Source from the content-addressed store, hash-verified

644 return public.return_data(True, msg, project_id)
645
646 def modify_project(self,get):
647 ''&#x27;
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 ''&#x27;
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

Callers

nothing calls this directly

Calls 14

is_install_nodejsMethod · 0.95
get_project_findMethod · 0.95
check_port_is_usedMethod · 0.95
set_configMethod · 0.95
rebuild_projectMethod · 0.95
formatMethod · 0.45
existsMethod · 0.45
getMethod · 0.45
splitMethod · 0.45
dumpsMethod · 0.45
updateMethod · 0.45
whereMethod · 0.45

Tested by

no test coverage detected