From aae1a14ea756102251351d96e2567b4986d30e2b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 16:17:27 +0200 Subject: Adding upstream version 3.6.12. Signed-off-by: Daniel Baumann --- src/syntactic-sugar/keysubdirs-as-groups | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/syntactic-sugar/keysubdirs-as-groups (limited to 'src/syntactic-sugar/keysubdirs-as-groups') diff --git a/src/syntactic-sugar/keysubdirs-as-groups b/src/syntactic-sugar/keysubdirs-as-groups new file mode 100644 index 0000000..0a3a9ae --- /dev/null +++ b/src/syntactic-sugar/keysubdirs-as-groups @@ -0,0 +1,32 @@ +# vim: syn=perl: + +# "sugar script" (syntactic sugar helper) for gitolite3 + +# Enabling this script in the rc file allows you to use subdirectories in +# keydir as group names. The last component other than keydir itself will be +# taken as the group name. + +sub sugar_script { + Gitolite::Common::trace( 2, "running 'keysubdirs-as-groups' sugar script..." ); + my $lines = shift; + + my @out = @{$lines}; + unshift @out, groupnames(); + + return \@out; +} + +sub groupnames { + my @out = (); + my %members = (); + for my $pk (`find ../keydir/ -name "*.pub"`) { + next unless $pk =~ m(.*/([^/]+)/([^/]+?)(?:@[^./]+)?\.pub$); + next if $1 eq 'keydir'; + $members{$1} .= " $2"; + } + for my $m ( sort keys %members ) { + push @out, "\@$m =" . $members{$m}; + } + + return @out; +} -- cgit v1.2.3