Go iNotify based directory monitor with http notification and support for UTF-8 filenames.
https://golang.org/doc/go1.8 - specifically net/url - url.PathEscape()
dirmonitor is configured via 3 environment variables. In the examples below, %%PATH%% will be replaced with the full pathname of the target file stripped of the supplied suffix match filter.
| env | role | example |
|---|---|---|
| WATCHFOLDER | The directory you want to monitor for changes. Note that network mounts (e.g. CIFS, NFS etc) do NOT generate iNotify events. | /path/to/be/monitored |
| WORKFLOWURL | A URL to be called when CLOSE events have been detected on matched files (see below) in the monitored directory. | http://something.url/some/endpoing.php?path=%%PATH%% |
| http://something.url/rest/endpoint/action/%%PATH%% | ||
| FILESUFFIX | A filename match filter string, not regex. | .xml |
For example:
#!/bin/sh
export WATCHFOLDER=/path/to/be/monitored
export WORKFLOWURL=http://something.url/inotify.php?path=%%PATH%%
export FILESUFFIX=.xml
/usr/sbin/dirmonitor
In all circumstances, the param FILESUFFIX will be appended to the constructed URL.
Given a CLOSE event observed on /path/to/be/monitored/105_8339634_5290303والمعلومات.xml, the following URL will be called:
http://octojex.labs.jupiter.bbc.co.uk/api2/jupiterarrival/%2Fhome%2Focto_from_jupiter%2F105_8339634_5290303%D9%88%D8%A7%D9%84%D9%85%D8%B9%D9%84%D9%88%D9%85%D8%A7%D8%AA?FILESUFFIX=.xml