pull/632/head
Mr Chen 6 months ago
parent c3ef396728
commit d25993e78b
  1. 35
      web/admin/plugins/__init__.py
  2. 6
      web/thisdb/init.py
  3. 55
      web/utils/plugin.py

@ -34,35 +34,14 @@ def index():
@blueprint.route('/init', endpoint='init', methods=['POST']) @blueprint.route('/init', endpoint='init', methods=['POST'])
@panel_login_required @panel_login_required
def init(): def init():
plugin_names = { return MwPlugin.instance().init()
'openresty': '1.25.3',
'php': '56',
'swap': '1.1',
'mysql': '5.7',
'phpmyadmin': '4.4.15',
}
pn_dir = mw.getPluginDir()
pn_server_dir = mw.getServerDir()
pn_list = []
for pn in plugin_names:
info = {}
pn_json = pn_dir + '/' + pn + '/info.json'
pn_server = pn_server_dir + '/' + pn
if not os.path.exists(pn_server):
tmp = mw.readFile(pn_json)
tmp = json.loads(tmp)
info['title'] = tmp['title']
info['name'] = tmp['name']
info['versions'] = tmp['versions']
info['default_ver'] = plugin_names[pn]
pn_list.append(info)
else:
return mw.returnData(False, 'ok')
return mw.returnData(True, 'ok', pn_list) # 初始化安装
@blueprint.route('/init_install', endpoint='init_install', methods=['POST'])
@panel_login_required
def init_install():
plugin_list = request.form.get('list', '')
return MwPlugin.instance().initInstall(plugin_list)
# 首页软件展示 # 首页软件展示
@blueprint.route('/index_list', endpoint='index_list', methods=['GET','POST']) @blueprint.route('/index_list', endpoint='index_list', methods=['GET','POST'])

@ -14,9 +14,9 @@ import core.mw as mw
def initPanelData(): def initPanelData():
# _dbfile = mw.getPanelDataDir() + '/panel.db' _dbfile = mw.getPanelDataDir() + '/panel.db'
# if os.path.exists(_dbfile): if os.path.exists(_dbfile):
# return True return True
sql_file = mw.getPanelDir() + '/web/admin/setup/sql/default.sql' sql_file = mw.getPanelDir() + '/web/admin/setup/sql/default.sql'
sql = mw.M().dbPos(mw.getPanelDataDir(),'panel') sql = mw.M().dbPos(mw.getPanelDataDir(),'panel')
content = mw.readFile(sql_file) content = mw.readFile(sql_file)

@ -132,6 +132,61 @@ class plugin(object):
plist = self.checkStatusMThreads(plist) plist = self.checkStatusMThreads(plist)
return plist return plist
def init(self):
plugin_names = {
'openresty': '1.25.3',
'php': '56',
'swap': '1.1',
'mysql': '5.7',
'phpmyadmin': '4.4.15',
}
pn_dir = mw.getPluginDir()
pn_server_dir = mw.getServerDir()
pn_list = []
for pn in plugin_names:
info = {}
pn_json = pn_dir + '/' + pn + '/info.json'
pn_server = pn_server_dir + '/' + pn
if not os.path.exists(pn_server):
tmp = mw.readFile(pn_json)
tmp = json.loads(tmp)
info['title'] = tmp['title']
info['name'] = tmp['name']
info['versions'] = tmp['versions']
info['default_ver'] = plugin_names[pn]
pn_list.append(info)
else:
return mw.returnData(False, 'ok')
return mw.returnData(True, 'ok', pn_list)
def initInstall(self, plugin_list):
try:
pn_list = json.loads(plugin_list)
for pn in pn_list:
name = pn['name']
version = pn['version']
info_file = self.__plugin_dir + '/' + name + '/' + 'info.json'
pluginInfo = json.loads(mw.readFile(info_file))
self.hookInstall(pluginInfo)
cmd = 'cd {0} && bash {1} install {2}'.format(
mw.getPluginDir() + '/'+name,
pluginInfo['shell'],
version
)
title = '安装[' + name + '-' + version + ']'
thisdb.addTask(name=title,cmd=cmd)
os.mkdir(mw.getServerDir() + '/php')
# 任务执行相关
mw.triggerTask()
return mw.returnData(True, '添加成功')
except Exception as e:
return mw.returnData(False, mw.getTracebackInfo())
def menuGetAbsPath(self, tag, path): def menuGetAbsPath(self, tag, path):
if path[0:1] == '/': if path[0:1] == '/':
return path return path

Loading…
Cancel
Save