一.项目介绍
本项目旨在提出一种通用框架,兼容Python,Shell两种编程语言,实现根据目录下遵循接口规范的的.py,.sh文件,自动生成调用指令和说明,实现较好的扩展性和兼容性,服务于系统优化和加固等应用方向。
二.软件架构
SOP tools主要分为四部分:
主程序用于调用各种语言优化加固代码,和生成代码运行指令。
pysrc主要包括python相关优化脚本。
shsrc主要包括shell相关优化脚本。
util主要包括框架运行所需要保障的功能函数。
三.Python类工具脚本
python实现的脚本,一律放到pysrc目录下面,该目录会自动动态编译,调用main.py时会自动生成对应的设置项。
实现python类脚本需要满足以下注意事项:
1.命名要求。py文件名即为main接口调用参数名,同时py文件类务必定义一个和文件名相同的类作为执行单元。所以,命名尽可能简洁且能够表述清楚对应模块功能。
2.执行类的要求。类名称同py文件名,__init__函数类务必包含self.description,用于main接口的描述字,run函数用于实现具体的功能运行。
3.模块存在3类,通常为do类。
4.参数传递,需在run内部定义好参数顺序,并添加参数*args,避免因过多输入导致问题,输入参数会自动实现类型转换,注意请勿使用数字作为纯字符串。
|
四.shell类工具脚本
shell实现的脚本直接放入shsrc目录下面,文件名即为调用名,会自动在main.py的help中生成项。需要注意以下两点:
1.shell脚本开头必须是以下内容(嵌套的if输出),echo输出的为该脚本的功能描述(除echo后字段,其他字段均不要修改),后续传参请勿使用description字段为参数,脚本功能描述请勿使用-*号作为描述内容。
2.脚本功能正常在涉及代码段后书写即可,传参按照正常shell脚本传参方式传递即可。
3.需要传参数的脚本,请在第二个传参脚本写-*PTrue,否其余情况则任务无需参数调用(必须以-*号开始),这会影响main.py调度脚本的创建。
无需传参数:
|
需传参数:
|
五.基本功能
1.根据python脚本文件和shell脚本文件,生成调用指令。
|
2.使用调用指令,调用特定的脚本和功能。
|
或者
|
亦或者
|
限制内存使用。
|
六.实现介绍。
核心实现main.py,函数入口也为main.py。
程序入口如下:
|
parser解析器初始化——>mapping_item获取python,shell脚本(__pycache__文件删除)——>为脚本生成parser的config——>读取用户输入指令执行脚本
七.研发规划
python构建兼容python,shell的框架脚本。
设计python,shell两类代码接入规范。
支持三种模式运行:守护进程模式、命令执行模式和交互模式。
自动根据.py,.sh文件变化更新程序指令。
接入操作系统相关优化脚本和代码。