From 2f34c21c9f187240a3f9b76654daf6cb638efa00 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 13 Jul 2024 16:18:44 -0300 Subject: Feat: inotify action --- ChangeLog.md | 5 +++++ IDEAS.md | 6 +++--- kvmx | 26 ++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index f8f520c..7a0c8a4 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,5 +1,10 @@ # ChangeLog +## 0.3.0 - unreleased + +* Inotify action for watching a folder in the host and issuing commands in the + guest upon change. + ## 0.2.0 - 2024-07-02 * Increase default `msize` for 9p mounts to 32MiB depending on kernel support, diff --git a/IDEAS.md b/IDEAS.md index d942729..b498535 100644 --- a/IDEAS.md +++ b/IDEAS.md @@ -2,13 +2,13 @@ ## Usability +* Submit patch for spice-client-gtk for menuless windows (spice usecase) to + Debian. + * Docs (tutorial and manpage). * Makefile and debian package. -* Submit patch for spice-client-gtk for menuless windows (spicec usecase) to - Debian. - * Systemd service for a single VM. * Shell completions. diff --git a/kvmx b/kvmx index 5ab776f..e912f84 100755 --- a/kvmx +++ b/kvmx @@ -2562,6 +2562,32 @@ function kvmx_growpart { kvmx_restart } +# Inotify dispatcher +function kvmx_inotify { + local watched="$1" + + shift + local command="$*" + + # Syntax check + if [ -z "$command" ]; then + echo "usage $BASENAME inotify $GUEST " + echo "example: kvmx inotify $guest hostfolder make -C guestfolder compile" + exit 1 + fi + + # Check if watched exists + if [ ! -e "$watched" ]; then + echo "Not found: $watched" + exit 1 + fi + + # Dispatch + while inotifywait -r $watched; do + echo "$command" | kvmx_ssh + done +} + # Dispatch if type kvmx_$ACTION 2> /dev/null | grep -q "kvmx_$ACTION ()"; then __kvmx_initialize $* -- cgit v1.2.3