Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/perl
- use warnings;
- use strict;
- use Linux::Inotify2;
- my $notifier = new Linux::Inotify2 or die "Unable to create new inotify object: $!";
- my $mask = IN_CREATE | IN_DELETE | IN_DELETE_SELF | IN_MOVED_FROM | IN_MOVED_TO | IN_MOVE_SELF;
- do_dir(".");
- while() {
- my @events = $notifier->read;
- unless(@events > 0) {
- print "read error: $!";
- last;
- }
- foreach my $event ( @events ) {
- print $event->fullname." was created\n" if $event->IN_CREATE;
- print $event->fullname." was deleted\n" if $event->IN_DELETE;
- do_dir($event->fullname) if $event->IN_CREATE and -d $event->fullname;
- }
- }
- sub do_dir {
- my $dir = shift;
- $notifier->watch($dir, $mask);
- opendir(my $dh, $dir) or die "Could not open dir $dir: $!";
- while(readdir($dh)) {
- next if $_ eq "." or $_ eq "..";
- do_dir($dir."/".$_) if -d $dir."/".$_;
- }
- closedir($dh);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement