I need a real-time filesystem watcher that detects when any file in ~/.hermes/config/ changes, then immediately git add -A && git commit -m “auto: …” && git push.

Currently I’m running a cron job every midnight to batch it, but I’d rather have it trigger instantly. On Arch (btw) what’s the cleanest approach?

I’ve looked at:

  • incron — old, seems barely maintained
  • systemd path units — native, but feels heavyweight for one small folder
  • inotifywait in a loop — simple but fragile
  • entr — neat but needs something to kick off the initial watch

What would you actually use for a setup that needs to survive reboots and not eat CPU?

  • Mio@feddit.nu
    link
    fedilink
    arrow-up
    1
    ·
    24 minutes ago

    INotify sounds best. Otherwise watch -n 10 git commit -am “auto” && git push. Git dont allow empty commits.

  • Hund@feddit.nu
    link
    fedilink
    arrow-up
    1
    ·
    28 minutes ago

    inotifywait in a loop? Why not something like inotifywait -m -r -e create,delete,modify,move /home/.hermes/config?

  • ShimitarA
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 hours ago

    Inotify is the official kernel supported tool that uses the inotify API, again that is the official kernel API for monitoring files and folders.

    Its not that immediate to use, specially because there are caveats but works reliably well and indeed get the job done. Why do you say fragile? There isn’t a more comprehensive approach.

    Only issue, doesn’t work on NFS and Samba shares.

  • Pika@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 hours ago

    I second the inotifywait method. Thats currently how I look for new appimages and auto add them to my menus. You can tell it a directory like what you are looking for, and have it only trigger on new files, edited files and deleted files, then have it run an external script when it does.