File tree Expand file tree Collapse file tree 1 file changed +75
-1
lines changed
Expand file tree Collapse file tree 1 file changed +75
-1
lines changed Original file line number Diff line number Diff line change 1- # NodeScriptKit
1+ # NodeScriptKit
2+ NodeScriptKit项目,简称nsk项目。它是
3+ - 一个社区驱动的,命令小抄项目
4+ - 一个可自由扩展配置,支持订阅,交互式的,服务器辅助脚本汇总集合
5+ - 一个能够节省你大量命令/脚本查找时间的项目
6+
7+ ## 主配置文件说明
8+ - 配置文件采用[ toml格式] ( https://toml.io/cn/v1.0.0 ) ,可以使用[ vscode] ( https://code.visualstudio.com/ ) 配合[ Even Better TOML] ( https://marketplace.visualstudio.com/items?itemName=tamasfe.even-better-toml ) 插件或者一些[ 在线编辑器] ( https://www.toml-lint.com/ ) 编辑
9+ - nsk的主配置文件默认位于/etc/nsk/config.toml
10+ - 常用的配置入口包括[ local] 和[ remote] ,分别代表本地模块文件和远程订阅文件,本地和远程都可以合并/覆盖配置
11+ - 合并配置toml解析后的对象合并,而非文本拼接
12+ - 本地配置文件支持通配符,对匹配到的文件按文件名[ 自然排序] ( https://github.com/facette/natsort ) 后导入
13+ - 默认` /etc/nsk/modules.d/default/*.toml ` 为官方模块,更新时会清空内容后再更新
14+ - 默认` /etc/nsk/modules.d/extend/*.toml ` 为用户模块,更新菜单时不会清空内容
15+ - 支持订阅,多个订阅链接会并发加载
16+
17+ ## 模块配置文件说明
18+ 模块配置是用户打交道比较多的地方,内容包括脚本和菜单,菜单可以指向子菜单(们)和脚本
19+
20+ ### 脚本示例
21+ ```
22+ [scripts]
23+ # 脚本集合,键值对
24+ memory = "free -h"
25+ disk = "df -hT"
26+ cpuinfo = "cat /proc/cpuinfo"
27+ whoami = "whoami"
28+
29+ hello = "echo \"hello world\""
30+ yabs = "curl -sL yabs.sh | bash"
31+ docker = "bash <(curl -sL 'https://get.docker.com')"
32+
33+ test = "echo '这是一个测试项'"
34+ ```
35+
36+ 脚本部分比较简单,是一系列键值对,一个键对应一个字符串的值
37+
38+ ### 菜单示例
39+
40+ ```
41+ [[menus]]
42+ id = "main"
43+ title = "主菜单"
44+ sub_menus = [
45+ "info",
46+ "tool",
47+ "test"
48+ ]
49+
50+ [[menus]]
51+ id = "info"
52+ title = "系统信息"
53+ sub_menus = [
54+ "cpu",
55+ "memory",
56+ "disk",
57+ "current-user",
58+ ]
59+
60+ [[menus]]
61+ id = "test"
62+ title = "测试项"
63+ script = "test"
64+ ```
65+
66+ 如上面所示,main菜单是入口菜单,有3个子菜单,其中info子菜单有进一步的子菜单,而test菜单没有下级,直接指向id为test的脚本
67+
68+ 这些菜单id负责穿针引线,落叶归根到脚本id
69+
70+ ## 代码提交规范和约定
71+ - 鼓励开发者通过pr贡献内容
72+ - 提交的内容主要包括菜单和脚本,菜单放到modules.d下,脚本放到shell_scripts下
73+ - 菜单类要以3位数字开头,安装优先级排序,数值大的内容可以合并/覆盖数值小的
74+ - 脚本类尽量在文件开头写明代码脚本描述,可以参考这个[ 模板文件] ( ./shell_scripts/example.v0.0.1.0417.sh )
75+ - 脚本尽量使用交互式调用
You can’t perform that action at this time.
0 commit comments