[TOC]
# 简介
脚本插件是用来解析脚本语言的`Script`插件,它是rboot脚本的一个扩展。通过`yaml`配置文件来执行系统命令或脚本。
> 因为脚本插件是建立在`Script`基础之上的,每个插件都会被注册到`Script`之中,所以确保脚本之间名称不要重叠,否则可能先注册的脚本会被后注册的脚本替换!
# 编写脚本插件
## 配置
- `PLUGIN_DIR`:脚本插件配置文件存放的文件夹,若不配置默认为`plugins`
## 快速开始
我们可以通过创建一个`yaml`文件来创建一个脚本插件,通过文件中的配置选项来实现对脚本插件的配置。比如我们创建一个 `hello.yml` 文件,它的内容如下:
```yaml
name: hello
version: 0.1.0
ruleset:
hello: "^hello"
usage:
hi: echo hello world and 你好
description: 脚本插件示例
command:
-
cmd:
- echo hi
- echo hello world
-
dir: plugins
cmd:
- echo 你好
```
这个插件使用的是系统命令 `echo`。它的意思是:当我们出入“hello”后,脚本会返回 `hi`,`hello world` 和 `你好` 三条信息。
配置中各个字段的含义:
配置 | 必须 | 意义
- | :-: | :-:
name| 是 | 插件名称
ruleset|是|规则集合
version|否|插件版本
usage|否|插件用法
description|否|插件简介
command|是|插件命令集
-|-|-
dir|否|命令执行文件夹
cmd|是|插件命令
> `command`可配置多个命令集,执行顺序为从上到下依次执行
> `cmd`可配置多条命令,执行顺序为从上到下依次执行
脚本插件支持`系统命令`和`脚本语言`。系统命令模式如上面的`hello.yml`,只需在文件中填写文件夹和系统命令,当你发出命令后,机器人就会从上到下依次执行。
脚本语言是建立在系统命令模式之上的执行方式,我们可以使用系统命令调用语言脚本,从而执行比较复杂的脚本。比如我们使用python输出“hello robot”。
我们的python脚本如下:
```python
#!/usr/bin/env python
print("Hello, robot! i am a python script")
```
我们的配置文件如下:
```yaml
name: pyscript
version: 0.1.0
ruleset:
py: "^hello python"
usage:
py: execute python script
description: python插件示例
command:
dir: script
cmd:
- ./hello.py
```
当我们输入 `hello python` 时,机器人会调用 `hello.py` 脚本,脚本输出"Hello, robot! i am a python script"并通过机器人展示给我们。
> 在不同操作系统下请确认 `目录分隔符` 是否符合当前系统设置。
> `windows` 下请使用 `\`
> `unix` 下请使用 `/`