64 lines
2.1 KiB
Python
64 lines
2.1 KiB
Python
from support import SupportSubprocess
|
|
from tool import ToolModalCommand
|
|
|
|
from .page_command import PageCommand
|
|
from .setup import *
|
|
|
|
name = 'tool'
|
|
|
|
class ModuleTool(PluginModuleBase):
|
|
def __init__(self, P):
|
|
super(ModuleTool, self).__init__(P, name=name, first_menu='command')
|
|
|
|
self.set_page_list([PageUpload, PageCrypt, PagePython, PageCommand])
|
|
|
|
|
|
|
|
class PageUpload(PluginPageBase):
|
|
db_default = {
|
|
'path_upload': os.path.join(F.config['path_data'], 'upload'),
|
|
}
|
|
|
|
def __init__(self, P, parent):
|
|
super(PageUpload, self).__init__(P, parent, name='upload')
|
|
|
|
|
|
|
|
class PageCrypt(PluginPageBase):
|
|
def __init__(self, P, parent):
|
|
super(PageCrypt, self).__init__(P, parent, name='crypt')
|
|
|
|
self.db_default = {
|
|
f'{self.parent.name}_{self.name}_use_user_key': 'False',
|
|
f'{self.parent.name}_{self.name}_user_key': '',
|
|
f'{self.parent.name}_{self.name}_user_key': '',
|
|
}
|
|
|
|
class PagePython(PluginPageBase):
|
|
def __init__(self, P, parent):
|
|
super(PagePython, self).__init__(P, parent, name='python')
|
|
self.db_default = {
|
|
f'{self.parent.name}_{self.name}_name': '',
|
|
}
|
|
|
|
def process_command(self, command, arg1, arg2, arg3, req):
|
|
ret = {'ret':'success'}
|
|
if command == 'get_freeze':
|
|
command = ['pip', 'freeze']
|
|
result = SupportSubprocess.execute_command_return(command)
|
|
if result['status'] == 'finish':
|
|
ret['data'] = []
|
|
for tmp in result['log'].split('\n'):
|
|
ret['data'].append(tmp.split('=='))
|
|
else:
|
|
ret['ret'] = 'danger'
|
|
ret['msg'] = "실패"
|
|
elif command == 'upgrade':
|
|
P.ModelSetting.set(f'{self.parent.name}_{self.name}_name', arg1)
|
|
cmd = ['pip', 'install', '--upgrade', arg1]
|
|
ToolModalCommand.start("pip 설치", [cmd])
|
|
elif command == 'remove':
|
|
cmd = ['pip', 'uninstall', '-y', arg1]
|
|
ToolModalCommand.start("pip 삭제", [cmd])
|
|
return jsonify(ret)
|