1 个不稳定版本
0.2.0 | 2020年8月7日 |
---|
#11 在 #watchdog
15KB
327 行
罗夏克
目录监控工具。罗夏克允许您监控目录中的更改,并在这些事件发生时触发某些命令。
用法
./rorshach -f <dir> [-config <config_path>] [-t <等待重新加载的秒数>]
默认配置文件位于 ~/.rorshach.conf
配置文件
配置文件具有以下形式的规则
EVENT PATTERN ACTION
... ... ...
EVENTS
可以是 CREATE
、DELETE
、RENAME
或 MODIFY
。每个事件在监控目录中的文件被创建、删除、修改或重命名时触发。 PATTERNS
是匹配目录中文件的模式。例如 *.cpp
匹配目录中的所有 C++ 文件。 ACTIONS
是在 EVENT
发生时可以执行的命令。
执行操作时,以下环境变量可用: - {FULLPATH}
- 文件的完整路径,{BASEDIR}
- 罗夏克监控的目录路径 {NEWFULLPATH}
- 文件重命名时的新路径,否则为空。
示例
CREATE * echo " New file named ${FULLPATH} created"
每次创建新文件时,将打印一行类似 New file named <file-name> created
的内容。
MODIFY *.cpp g++ ${FULLPATH} {BASEDIR}/test
当检测到 C++ 文件中的更改时,rorshach
将编译该文件,并在基本目录中创建一个名为 test
的可执行文件。
待办事项
- 添加更多要监听的事件,如
Rename
- 支持对单个事件执行一系列命令
- 将命令行传递移至不同的结构体
-
添加线程池以在事件生成后执行每个任务 - 添加事件发布/订阅机制
- 添加测试?
- 将 parse_rules 移至封装的结构体中
- 使用
log
创建日志。 - 为错误提供更好的消息。
- 添加事件监听和消费的发布/订阅机制
依赖关系
~7-18MB
~204K SLoC