Reduce disk writes in post-compile triggers
[gitolite.git] / src / syntactic-sugar / keysubdirs-as-groups
blob0a3a9ae1c87e633045742d90361a5c3e43bb6a32
1 # vim: syn=perl:
3 # "sugar script" (syntactic sugar helper) for gitolite3
5 # Enabling this script in the rc file allows you to use subdirectories in
6 # keydir as group names.  The last component other than keydir itself will be
7 # taken as the group name.
9 sub sugar_script {
10     Gitolite::Common::trace( 2, "running 'keysubdirs-as-groups' sugar script..." );
11     my $lines = shift;
13     my @out = @{$lines};
14     unshift @out, groupnames();
16     return \@out;
19 sub groupnames {
20     my @out     = ();
21     my %members = ();
22     for my $pk (`find ../keydir/ -name "*.pub"`) {
23         next unless $pk =~ m(.*/([^/]+)/([^/]+?)(?:@[^./]+)?\.pub$);
24         next if $1 eq 'keydir';
25         $members{$1} .= " $2";
26     }
27     for my $m ( sort keys %members ) {
28         push @out, "\@$m =" . $members{$m};
29     }
31     return @out;