mirror of
https://git.freebsd.org/ports.git
synced 2025-05-18 10:03:10 -04:00
Here's how the fileschanged FAM client works: you give it some filenames on the command line and then it monitors those files for changes. When it discovers that a file has changed (or has been altered), it displays the filename on the standard-output. PR: ports/66894 Submitted by: Konstantin Reznichenko <kot@premierbank.dp.ua>
32 lines
861 B
C
32 lines
861 B
C
--- src/handlers.c.orig Mon Feb 23 01:42:46 2004
|
|
+++ src/handlers.c Sun May 23 17:50:35 2004
|
|
@@ -7,6 +7,10 @@
|
|
#include "node.h"
|
|
#include "opts.h"
|
|
#include "wl.h"
|
|
+#if defined(__FreeBSD__)
|
|
+#include "libgen.h"
|
|
+#endif
|
|
+
|
|
extern struct arguments_t arguments;
|
|
struct handler_t handlers[FC_HANDLER_MAX]=
|
|
{
|
|
@@ -180,12 +184,18 @@
|
|
}
|
|
void show_event(enum handler_enum_t id, char *filename)
|
|
{
|
|
+ if (arguments.fileschanged.exec_command == NULL) {
|
|
if (arguments.fileschanged.showaction)
|
|
{
|
|
fprintf(stdout, "%s ", handlers[id].name);
|
|
}
|
|
fprintf(stdout, "%s\n",filename);
|
|
fflush(stdout);
|
|
+ } else {
|
|
+ if (!fork()) {
|
|
+ execlp(arguments.fileschanged.exec_command, arguments.fileschanged.exec_command, handlers[id].name, filename, NULL);
|
|
+ }
|
|
+ }
|
|
return;
|
|
}
|
|
int handle_created_file(FAMConnection *c, void *list, enum handler_enum_t id, char *filename)
|