Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

when using Watchman's watch-make I want to access the name of the changed files

I am writing a watchman command with watchman-make and I'm at a loss when trying to access exactly what was changed in the directory. I want to run my upload.py script and inside the script I would like to access filenames of newly created files in /var/spool/cups-pdf/ANONYMOUS . so far I have

$ watchman-make -p '/var/spool/cups-pdf/ANONYMOUS' -—run 'python /home/pi/upload.py'

I'd like to add another argument to python upload.py so I can have an exact filepath to the newly created file so that I can send the new file over to my database in upload.py,

I've been looking at the docs of watchman and the closest thing I can think to use is a trigger object. Please help!

like image 686
ellieHoward Avatar asked Oct 20 '25 22:10

ellieHoward


1 Answers

Solution with watchman-wait:

Assuming project layout like this:

/posts/_SUBDIR_WITH_POST_NAME_/index.md
/Scripts/convert.sh

And the shell script like this:

#!/bin/bash
# File: convert.sh

SrcDirPath=$(cd "$(dirname "$0")/../"; pwd)
cd "$SrcDirPath"

echo "Converting: $SrcDirPath/$1"

Then we can launch watchman-wait like this:

watchman-wait . --max-events 0 -p 'posts/**/*.md' | while read line; do ./Scripts/convert.sh $line; done

When we changing file /posts/_SUBDIR_WITH_POST_NAME_/index.md the output will be like this:

...
Converting: /Users/.../Angular/dartweb_quickstart/posts/swift-on-android-building-toolchain/index.md
Converting: /Users/.../Angular/dartweb_quickstart/posts/swift-on-android-building-toolchain/index.md
...
like image 71
Vlad Avatar answered Oct 22 '25 11:10

Vlad



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!