Я использую сторож Facebook в Linux под bash для отслеживания изменений файловой системы.
Я не понимаю, как получить объект изменения JSON. Все, что я, кажется, получаю, это список измененных файлов. Я настраиваю часы и триггер, как показано ниже:
watchman watch /Users/osx/Applications/docker/tests watchman --
trigger /Users/osx/Applications/docker/tests 'file-sync' \
-- /Users/osx/Applications/docker/filewatcher/file-sync.sh
Однако, когда я запрашиваю аргументы, прошедшие через сценарий file-sync.sh, он выглядит как просто текстовое поле, а не объект JSON.
Нужно ли мне делать что-то еще, чтобы получить полную информацию обо всех изменениях, происходящих в корне?
watchman trigger-list shows the following results: { "version":
"4.9.0", "triggers": [
{
"command": [
"/Users/osx/Applications/docker/filewatcher/file-sync.sh"
],
"stdin": [
"name",
"exists",
"new",
"size",
"mode"
],
"append_files": true,
"name": "file-sync",
"empty_on_fresh_instance": true
} ] }
Насколько я понимаю, это должно дать мне объект JSON с компонентами имени, существует, новый, размер и режим.
В системном журнале вижу следующее:
2019-01-15T22:28:49,191: [trigger file-sync
/Volumes/UserData/osx/Applications/docker/tests] input_json: sending
json object to stm
Что такое стм?
В системном журнале вижу следующее:
2019-01-15T22:28:49,191: [trigger file-sync
/Volumes/UserData/osx/Applications/docker/tests] input_json: sending
`enter code here`json object to stm
В моем сценарии bash я использую jq для вывода вывода JSON на стандартный вывод.
$(echo jq '.' $1)