--- a/tele-watch.pl Fri Mar 06 15:32:41 2015 +0100
+++ b/tele-watch.pl Thu Apr 26 11:46:36 2018 +0200
@@ -35,7 +35,8 @@
use File::Find; # homepage hook
my $ME = basename $0;
-my $VERSION = "0.4:<VERSION>";
+my $VERSION = "0.4:b68c49bc006c+ tip
+";
my $opt_block = 1;
my $opt_daemon = 1;
@@ -59,6 +60,11 @@
# avoid execution of END{ } blocks
$clean_pids{$$} = 1;
chdir $dir or die "Can't chdir to $dir: $!\n";
+ for ('public') {
+ mkdir $_;
+ chown $uid, $gid => $_;
+ chmod $mode & 07777 => $_;
+ }
system("bzr init");
finddepth(sub {
chown($uid, $gid, $_);
@@ -67,6 +73,22 @@
}
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 $_ => 0770;
+ $gid = getgrnam('PM');
+ chown $uid, $gid => $_;
+ chmod(02770, $_);
+ }
+ exec "true"; # avoid execution of END{ } blocks
+ }
+ wait;
+ },
);
my %clean_pids;
@@ -212,25 +234,40 @@
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";
+ if ($dir =~ /angebote/gi) {
+ $gid = getgrnam('PM');
+ mkdir $dir => 0770;
+ chmod(02770, $dir);
+ }
+ else {
+ mkdir $dir => 0755;
+ chmod($mode & 07777, $dir);
+ }
+
+ chown($uid, $gid, $dir);
+ }
- notice "symlink $dir <= $link";
- unlink $link;
- symlink $dir => $link;
+ if ( "$link" =~ /angebote/gi )
+ {
+ $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);
@@ -431,7 +468,8 @@
=head1 VERSION
-This is <VERSION>.
+This is b68c49bc006c+ tip
+.
=cut