From 2436e7b4e1b6141bed6b0932f88a2437628c0267 Mon Sep 17 00:00:00 2001 From: dengsgo Date: Thu, 3 Jan 2019 11:28:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=A1=8C=201.5=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 10 ++++++++++ README.md | 45 +++++++++++++++++++++++++++++++++++---------- notifer.go | 2 +- raw.go | 8 ++++---- 4 files changed, 50 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b31e22b..e580afb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,13 @@ +### Release v1.5 + +2019.01.03 + +- 增加 http 通知 +- 增加 callUrl 参数 +- 优化 command 稳定性 + + + 2019.01.02 - 增加 command -> delayMillSecond 参数 diff --git a/README.md b/README.md index 807e584..d63fa70 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,17 @@ fileboy,文件变更监听通知系统,使用 Go 编写。 适用于 Hot Reload (典型的如开发go项目,无需每次手动执行 go build;又比如前端 node 打包) 或者 系统监控的场景。 +## 特性 + +- 极简的用法和配置 +- 支持多平台,Windows/Linux/MacOS +- 支持自定义文件监听范围,监听指定文件夹/不监听指定文件夹/指定后缀文件 +- 支持设置多条命令 +- 命令支持变量占位符 +- 支持冗余任务丢弃,自定义冗余任务范围 +- 支持 http 通知 +- 更多... + ## 编译环境 go version >=1.10,推荐 1.11 @@ -17,8 +28,8 @@ go version >=1.10,推荐 1.11 ### 下载二进制文件 -Github: [正式版 v1.2](https://github.com/dengsgo/fileboy/releases) -Gitee: [正式版 v1.2](https://gitee.com/dengsgo/fileboy/releases) +Github: [正式版 v1.5](https://github.com/dengsgo/fileboy/releases) +Gitee: [正式版 v1.5](https://gitee.com/dengsgo/fileboy/releases) 下载已经编译好的对应平台二进制文件,重命名为`fileboy`, 加入系统 Path 中即可。 @@ -106,6 +117,19 @@ command: # 合理设置延迟时间,将有效减少冗余和重复任务的执行 # 如果不需要该特性,设置为 0 delayMillSecond: 1000 + +# 通知器 +notifier: + # 文件更改会向该 url 发送请求(POST 一段 json 文本数据) + # 触发请求的时机和执行 command 命令是一致的 + # 请求超时 15 秒 + # POST 格式: + # Content-Type: application/json;charset=UTF-8 + # User-Agent: FileBoy Net Notifier v1.5 + # Body: {"project_folder":"/watcher-dirs","file":"test.go","changed":1546421173070433800,"ext":".go"} + # 例: http://example.com/notifier/fileboy-listener + # 不启用通知,请留空 + callUrl: "" ``` ### TODO @@ -115,8 +139,9 @@ command: - [x] 支持监听指定文件夹 - [x] 支持不监听指定文件夹 - [x] 支持监听指定后缀文件 -- [ ] 支持 http 通知 -- [x] 支持冗余任务丢弃 +- [x] 支持 http 通知 +- [x] 支持冗余任务丢弃 +- [ ] 支持 http 合并任务的通知 @@ -132,9 +157,13 @@ command: 对于一些需要监控文件日志或者配置变动的场景, fileboy 同样适合。你可以事先编写好相应的通知报警脚本,然后定义`filegirl.yaml`中的`command`命令,交由 fileboy 自动运行监控报警。 +#### 通知器在什么时候会发送 http 请求 ? + +通知器发送 http 通知的前提是在配置文件中设置了 `callUrl` 参数(不为空即为已设置)。触发请求的时机和执行 command 命令是一致的,`command -> delayMillSecond` 参数对于触发器同样有效。请求超时默认15秒. + #### idea 下更改文件,为什么会执行两次或者多次 command ? -由于 idea 系列软件特殊的文件保存策略,他会自动创建一些临时文件,并且在需要时多次重写文件,所以有时反映在文件上就是有多次的更改,所以会出现这种情况。这个后续会做优化. +由于 idea 系列软件特殊的文件保存策略,他会自动创建一些临时文件,并且在需要时多次重写文件,所以有时反映在文件上就是有多次的更改,所以会出现这种情况。1.5版本增加了 `delayMillSecond` 参数,可以解决这个问题。 #### filegirl.yaml 里面的 command 不支持复杂的命令吗? @@ -154,11 +183,7 @@ fileboy 目前支持 `命令 + 参数`这种形式的 command,而且 参数中 #### 为什么起名为 fileboy,又把配置名叫做 filegirl ? -因为爱情~~ - -#### 听说有彩蛋? - -(◡ᴗ◡✿) +因为爱情~~ (◡ᴗ◡✿) diff --git a/notifer.go b/notifer.go index fde08dc..907e9fc 100644 --- a/notifer.go +++ b/notifer.go @@ -60,7 +60,7 @@ func (n *NetNotifier) dispatch(params *postParams) { return } req.Header.Set("Content-Type", "application/json;charset=UTF-8") - req.Header.Set("User-Agent", "FileBoy Net Notifier v1.2") + req.Header.Set("User-Agent", "FileBoy Net Notifier v1.5") resp, err := client.Do(req) defer resp.Body.Close() if resp.StatusCode >= 300 { diff --git a/raw.go b/raw.go index f34474e..e15fa6d 100644 --- a/raw.go +++ b/raw.go @@ -61,7 +61,7 @@ notifier: # 请求超时 15 秒 # POST 格式: # Content-Type: application/json;charset=UTF-8 - # User-Agent: FileBoy Net Notifier v1.2 + # User-Agent: FileBoy Net Notifier v1.5 # Body: {"project_folder":"/watcher-dirs","file":"test.go","changed":1546421173070433800,"ext":".go"} # 例: http://example.com/notifier/fileboy-listener # 不启用通知,请留空 @@ -104,13 +104,13 @@ var logo = ` _____ _ | | _____ ____) ) | | | |___| | | ___) | | | | | ___) | __ (| | | |\_____/ | | _| |_| |_____| |_____| |__) ) |___| | ___ -|_| (_____)_______)_______)______/ \_____/ (___) V1.2 +|_| (_____)_______)_______)______/ \_____/ (___) V1.5 ` var statement = `Dengsgo [dengsgo@gmail.com] Open Source with MIT License` var versionDesc = ` - Version fileboy: v1.2 filegirl: v` + strconv.Itoa(Version) + ` -Released 2019.1.1 + Version fileboy: v1.5 filegirl: v` + strconv.Itoa(Version) + ` +Released 2019.1.3 Licence MIT Author dengsgo [dengsgo@gmail.com] Website https://github.com/dengsgo/fileboy