--- a/wgnd-watch.pl Thu May 03 15:14:47 2012 +0200
+++ b/wgnd-watch.pl Thu May 03 22:33:34 2012 +0200
@@ -24,9 +24,10 @@
use warnings;
my $VERSION = '0.1';
-my $ME = $0;
+my $ME = $0;
use File::Basename;
+
# File::Rsync in squeeze does not support --xattrs yet
#use File::Rsync;
use Getopt::Long;
@@ -58,27 +59,27 @@
}
my %opts = (
- daemon => 1,
- map => 'wgnd-watch.map.pl',
+ daemon => 1,
+ map => 'wgnd-watch.map.pl',
pidfile => '/var/run/wgnd-watch.pid'
);
GetOptions(
- "map=s" => \$opts{map},
- "daemon!" => \$opts{daemon},
+ "map=s" => \$opts{map},
+ "daemon!" => \$opts{daemon},
"pidfile=s" => \$opts{pidfile},
- "h|help!" => sub { pod2usage( -verbose => 0, -exitval => 0 ) },
- "m|man!" => sub {
+ "h|help!" => sub { pod2usage(-verbose => 0, -exitval => 0) },
+ "m|man!" => sub {
pod2usage(
-verbose => 2,
-exitval => 0,
- -noperldoc => ( `perldoc -V 2>/dev/null`, $? != 0 )[-1]
+ -noperldoc => (`perldoc -V 2>/dev/null`, $? != 0)[-1]
);
},
) or pod2usage();
our $source;
-use lib ('.', $ENV{HOME}, '/etc');
+use lib ('.', $ENV{HOME}, '/etc');
require $opts{map};
$0 = "$ME @ARGV";
@@ -90,17 +91,17 @@
open STDIN, "</dev/null" or die "Can't redir STDIN: $!\n";
open STDOUT, ">/dev/null" or die "Can't redir STDOUT: $!\n";
- defined (my $pid = fork) or die "Can't fork: $!\n";
+ defined(my $pid = fork) or die "Can't fork: $!\n";
if ($pid) {
dolog "Child is [$pid]";
exit 0;
}
POSIX::setsid()
- or die "Can't setsid: $!\n";
+ or die "Can't setsid: $!\n";
open(STDERR, ">&STDOUT") or die "Can't dup stdout: $!\n";
open(P, '>', $opts{pidfile})
- or die "Can't open '>', '$opts{pidfile}': $!\n";
+ or die "Can't open '>', '$opts{pidfile}': $!\n";
print P $$;
close P;
$master = $$;
@@ -108,30 +109,34 @@
}
my $inotify = new Linux::Inotify2
- or die "Can't create new inotify object: $!\n";
+ or die "Can't create new inotify object: $!\n";
my @rsync = qw(/usr/bin/rsync -ihv -aAX);
for (keys %{$source}) {
# add watchers
- $inotify->watch ("$_", IN_CREATE, sub {
+ $inotify->watch(
+ "$_",
+ IN_CREATE,
+ sub {
my $pid = fork;
if (not defined $pid) {
warn "Can't fork: $!\n";
} elsif ($pid == 0) {
- my $e = shift;
+ my $e = shift;
my $name = $e->fullname;
- dolog "$name was created\n" if $e->IN_CREATE;
- dolog "$name is no longer mounted\n" if $e->IN_UNMOUNT;
- dolog "$name is gone\n" if $e->IN_IGNORED;
+ dolog "$name was created\n" if $e->IN_CREATE;
+ dolog "$name is no longer mounted\n" if $e->IN_UNMOUNT;
+ dolog "$name is gone\n" if $e->IN_IGNORED;
dolog "events for $name have been lost\n" if $e->IN_Q_OVERFLOW;
- exec @rsync, $source->{$e->{w}->{name}}, $name;
+ exec @rsync, $source->{ $e->{w}->{name} }, $name;
warn "Can't exec: $!\n";
}
- }) or die "Can't add watch: $!\n";
+ }
+ ) or die "Can't add watch: $!\n";
}
while (1) {
@@ -146,7 +151,10 @@
END {
- unlink $opts{pidfile} if $opts{daemon} and defined $master and $master eq $$;
+ unlink $opts{pidfile}
+ if $opts{daemon}
+ and defined $master
+ and $master eq $$;
dolog "exit";
closelog;