tele-watch.pl
changeset 47 9dec3ff4489b
parent 45 e66e9db8e83a
child 48 4910dd57e4b5
--- 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);