diff options
author | Flemming Madsen | 2011-10-10 20:24:02 +0200 |
---|---|---|
committer | Denys Vlasenko | 2011-10-10 20:24:02 +0200 |
commit | ecccbac37b733a57099c73bc806ac5de64643a35 (patch) | |
tree | e030ced4a9cea77edc25af27019fa867f71d5d82 /miscutils | |
parent | 39ec6a2ad5dae93c125b766eb8e705742216797a (diff) | |
download | busybox-ecccbac37b733a57099c73bc806ac5de64643a35.zip busybox-ecccbac37b733a57099c73bc806ac5de64643a35.tar.gz |
inotify: if PROG is -, print events to stdout
function old new delta
inotifyd_main 516 589 +73
packed_usage 28698 28709 +11
Signed-off-by: Flemming Madsen <busybox@themadsens.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'miscutils')
-rw-r--r-- | miscutils/inotifyd.c | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/miscutils/inotifyd.c b/miscutils/inotifyd.c index b64e0ab..7a1a6a2 100644 --- a/miscutils/inotifyd.c +++ b/miscutils/inotifyd.c @@ -33,6 +33,7 @@ //usage: "Run PROG on filesystem changes." //usage: "\nWhen a filesystem event matching MASK occurs on FILEn," //usage: "\nPROG ACTUAL_EVENTS FILEn [SUBFILE] is run." +//usage: "\nIf PROG is -, events are sent to stdout." //usage: "\nEvents:" //usage: "\n a File is accessed" //usage: "\n c File is modified" @@ -177,12 +178,20 @@ int inotifyd_main(int argc, char **argv) *s++ = mask_names[i]; } *s = '\0'; -// bb_error_msg("exec %s %08X\t%s\t%s\t%s", args[0], -// ie->mask, events, watches[ie->wd], ie->len ? ie->name : ""); - args[1] = events; - args[2] = watches[ie->wd]; - args[3] = ie->len ? ie->name : NULL; - spawn_and_wait((char **)args); + if (LONE_CHAR(args[0], '-')) { + /* "inotifyd - FILE": built-in echo */ + printf(ie->len ? "%s\t%s\t%s\n" : "%s\t%s\n", events, + watches[ie->wd], + ie->name); + fflush(stdout); + } else { +// bb_error_msg("exec %s %08X\t%s\t%s\t%s", args[0], +// ie->mask, events, watches[ie->wd], ie->len ? ie->name : ""); + args[1] = events; + args[2] = watches[ie->wd]; + args[3] = ie->len ? ie->name : NULL; + spawn_and_wait((char **)args); + } // we are done if all files got final x event if (ie->mask & 0x8000) { if (--argc <= 0) |