1 个不稳定版本

0.2.0 2020年8月7日

#11#watchdog

MIT 许可证

15KB
327

License: MIT Build

罗夏克

目录监控工具。罗夏克允许您监控目录中的更改,并在这些事件发生时触发某些命令。

用法

  • ./rorshach -f <dir> [-config <config_path>] [-t <等待重新加载的秒数>]

默认配置文件位于 ~/.rorshach.conf

配置文件

配置文件具有以下形式的规则

EVENT  PATTERN   ACTION
...     ...       ...

EVENTS 可以是 CREATEDELETERENAMEMODIFY。每个事件在监控目录中的文件被创建、删除、修改或重命名时触发。 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