--- a/tele-watch.pl Wed Apr 01 11:11:17 2015 +0200
+++ b/tele-watch.pl Thu Apr 21 14:11:00 2016 +0200
@@ -71,6 +71,21 @@
}
wait;
},
+ Angebote => sub {
+ my $dir = shift;
+ my ($uid, $gid, $mode) = (stat $dir)[4, 5, 2];
+ defined(my $pid = fork()) or die "Can't fork: $!\n";
+ if ($pid == 0) {
+ chdir $dir or die "Can't chdir to $dir: $!\n";
+ for ('subangebote') {
+ mkdir $_;
+ chown $uid, $gid => $_;
+ chmod $mode & 07777 => $_;
+ }
+ exec "true"; # avoid execution of END{ } blocks
+ }
+ wait;
+ },
);
MAIN: {
@@ -208,25 +223,33 @@
my ($uid, $gid, $mode) = (stat $fullname)[ 4, 5, 2 ];
# create a link to each directory found in $target/
- foreach my $t (map { basename($_) } grep { -d } dir "$target/")
+ foreach my $t (map { basename($_) } grep { -d } reverse(dir "$target/"))
{
- my $dir = "$target/$t/$e->{name}";
- my $link = "$fullname/$t";
- my $hook = $HOOK{$t} if exists $HOOK{$t}
- and ref $HOOK{$t} eq "CODE";
+
+ my $dir = "$target/$t/$e->{name}";
+
+ my $link = "$fullname/$t";
+ my $hook = $HOOK{$t} if exists $HOOK{$t}
+ and ref $HOOK{$t} eq "CODE";
- if (!-e $dir) {
- notice "mkdir $dir";
- mkdir $dir => 0755;
- chown($uid, $gid, $dir);
- chmod($mode & 07777, $dir);
- }
+ if (!-e $dir) {
+ notice "mkdir $dir";
+ mkdir $dir => 0755;
+ chown($uid, $gid, $dir);
+ chmod($mode & 07777, $dir);
+ }
- notice "symlink $dir <= $link";
- unlink $link;
- symlink $dir => $link;
+ if ( "$link" =~ /angebote/gi )
+ {
+ #$link = "/.dtele/Korrespondenz/$e->{name}/Angebote";
+ $link = "$target/Korrespondenz/$e->{name}/Angebote";
+ }
- $hook->($dir) if defined $hook;
+ notice "symlink $dir <= $link";
+ unlink $link;
+ symlink $dir => $link;
+ $hook->($dir) if defined $hook;
+
}
chmod(0555 => $fullname);