如何使用 watchman 观看父文件夹的子文件夹中的内容?

How to watch content from a subfolder of a parent folder using watchman?

我正在开发一个通过观看文件的图片上传器。图片包含在一个文件夹(子文件夹)中,该文件夹正在被复制到正在观看的父文件夹中。

示例:

~/parent/subfolder1/image1.png
~/parent/subfolder2/image2.png

如何使用传递给 watchman 的父文件夹参数来观看这些图像?或如何包含子文件夹?

这是我现在拥有的:

export PARENT_FOLDER = ~/parent/
export UPLOADER_SCRIPT = ~/upload_image.sh
watchman -- trigger $PARENT_FOLDER upload_image -- $UPLOADER_SCRIPT

upload_image.sh里面只是一个以图片文件路径为参数的上传函数

python upload.py image1.png

使用扩展语法:http://facebook.github.io/watchman/docs/trigger#extended-syntax 可以定义更丰富的匹配表达式。例如,这将匹配任何使用 glob 表达式的 .png 文件,但您可以使用任何表达式术语来精确地确定您需要的范围:

$ watchman -j <<-EOT
["trigger", "/path/to/parent", {
  "name": "upload_image",
  "expression": ["match", "**/*.png"],
  "command": ["/path/to/upload_image.sh"]
}]
EOT

您可能还想看看 anyof 作为组合多个条件的方法。