58 lines
1.2 KiB
Perl
Executable File
58 lines
1.2 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
my ($type, $path, $branch, $user, $perm);
|
|
|
|
my $R = ''; # -R for recursive
|
|
my $lvl = {
|
|
r => 1,
|
|
t => 2,
|
|
w => 3,
|
|
c => 4,
|
|
a => 4,
|
|
p => 5,
|
|
};
|
|
|
|
while(<>)
|
|
{
|
|
chomp;
|
|
next if /^\s*#/so;
|
|
($type, $path, $branch, $user, $perm) = split /:/, $_;
|
|
($user, $perm) = split /!/, $user;
|
|
next unless $perm;
|
|
$perm = [ sort { $lvl->{$b} cmp $lvl->{$a} } split //, $perm ];
|
|
$perm = $perm->[0];
|
|
if ($perm eq 't')
|
|
{
|
|
$perm = 'read,tag,nowrite,nocreate,nocontrol';
|
|
}
|
|
elsif ($perm eq 'r')
|
|
{
|
|
$perm = 'read,notag,nowrite,nocreate,nocontrol';
|
|
}
|
|
elsif ($perm eq 'w')
|
|
{
|
|
$perm = 'read,tag,write,nocreate,nocontrol';
|
|
}
|
|
elsif ($perm eq 'c' || $perm eq 'a')
|
|
{
|
|
$perm = 'read,tag,write,create,nocontrol';
|
|
}
|
|
elsif ($perm eq 'p')
|
|
{
|
|
$perm = 'read,tag,write,create,control';
|
|
}
|
|
print "cvs rchacl$R -a $perm";
|
|
print " -u '$user'" if $user ne 'ALL';
|
|
print " -r '$branch'" if $branch ne 'ALL';
|
|
if ($path ne 'ALL')
|
|
{
|
|
print " '$path'";
|
|
}
|
|
else
|
|
{
|
|
print ' `ls $CVSROOT | grep -v '."'#cvs'`";
|
|
}
|
|
print "\n";
|
|
}
|