(perltidy)

This commit is contained in:
Sitaram Chamarty 2012-04-18 06:26:18 +05:30
parent 2cb7d8313e
commit 1c15b4cc2d
6 changed files with 74 additions and 74 deletions

View file

@ -3,6 +3,7 @@ use strict;
use warnings; use warnings;
my $tid; my $tid;
BEGIN { BEGIN {
$tid = $ENV{GL_TID} || 0; $tid = $ENV{GL_TID} || 0;
delete $ENV{GL_TID}; delete $ENV{GL_TID};
@ -33,15 +34,15 @@ usage() if not @ARGV or $ARGV[0] eq '-h';
_die "HOSTNAME not set" if not $rc{HOSTNAME}; _die "HOSTNAME not set" if not $rc{HOSTNAME};
my ($cmd, $host, $repo) = @ARGV; my ( $cmd, $host, $repo ) = @ARGV;
usage() if not $repo; usage() if not $repo;
if ($cmd eq 'push') { if ( $cmd eq 'push' ) {
valid_slave($host, $repo) if exists $ENV{GL_USER}; valid_slave( $host, $repo ) if exists $ENV{GL_USER};
# will die if host not in slaves for repo # will die if host not in slaves for repo
trace(1, "TID=$tid host=$host repo=$repo", "gitolite mirror push started"); trace( 1, "TID=$tid host=$host repo=$repo", "gitolite mirror push started" );
_chdir($rc{GL_REPO_BASE}); _chdir( $rc{GL_REPO_BASE} );
_chdir("$repo.git"); _chdir("$repo.git");
my $errors = 0; my $errors = 0;
@ -50,19 +51,19 @@ if ($cmd eq 'push') {
chomp; chomp;
if (/FATAL/) { if (/FATAL/) {
$errors++; $errors++;
gl_log('mirror', $_); gl_log( 'mirror', $_ );
} else { } else {
trace(1, "mirror: $_"); trace( 1, "mirror: $_" );
} }
} }
exit $errors; exit $errors;
} }
sub valid_slave { sub valid_slave {
my ($host, $repo) = @_; my ( $host, $repo ) = @_;
_die "invalid repo '$repo'" unless $repo =~ $REPONAME_PATT; _die "invalid repo '$repo'" unless $repo =~ $REPONAME_PATT;
my $ref = git_config($repo, "^gitolite-options\\.mirror\\.slaves.*"); my $ref = git_config( $repo, "^gitolite-options\\.mirror\\.slaves.*" );
my %list = map { $_ => 1 } map { split } values %$ref; my %list = map { $_ => 1 } map { split } values %$ref;
_die "'$host' not a valid slave for '$repo'" unless $list{$host}; _die "'$host' not a valid slave for '$repo'" unless $list{$host};

View file

@ -72,7 +72,7 @@ sub in_ssh {
my $ip; my $ip;
( $ip = $ENV{SSH_CONNECTION} || '(no-IP)' ) =~ s/ .*//; ( $ip = $ENV{SSH_CONNECTION} || '(no-IP)' ) =~ s/ .*//;
gl_log( 'ssh', "ARGV=" . join( ",", @ARGV ), "SOC=" . ( $ENV{SSH_ORIGINAL_COMMAND} || ''), "FROM=$ip" ); gl_log( 'ssh', "ARGV=" . join( ",", @ARGV ), "SOC=" . ( $ENV{SSH_ORIGINAL_COMMAND} || '' ), "FROM=$ip" );
$ENV{SSH_ORIGINAL_COMMAND} ||= ''; $ENV{SSH_ORIGINAL_COMMAND} ||= '';
my $soc = $ENV{SSH_ORIGINAL_COMMAND}; my $soc = $ENV{SSH_ORIGINAL_COMMAND};
@ -172,15 +172,15 @@ sub sanity {
sub http_setup_die_handler { sub http_setup_die_handler {
$SIG{__DIE__} = sub { $SIG{__DIE__} = sub {
my $service = ($ENV{SSH_ORIGINAL_COMMAND} =~ /git-receive-pack/ ? 'git-receive-pack' : 'git-upload-pack'); my $service = ( $ENV{SSH_ORIGINAL_COMMAND} =~ /git-receive-pack/ ? 'git-receive-pack' : 'git-upload-pack' );
my $message = shift; chomp($message); my $message = shift; chomp($message);
print STDERR "$message\n"; print STDERR "$message\n";
# format the service response, then the message. With initial # format the service response, then the message. With initial
# help from Ilari and then a more detailed email from Shawn... # help from Ilari and then a more detailed email from Shawn...
$service = "# service=$service\n"; $message = "ERR $message\n"; $service = "# service=$service\n"; $message = "ERR $message\n";
$service = sprintf("%04X", length($service)+4) . "$service"; # no CRLF on this one $service = sprintf( "%04X", length($service) + 4 ) . "$service"; # no CRLF on this one
$message = sprintf("%04X", length($message)+4) . "$message"; $message = sprintf( "%04X", length($message) + 4 ) . "$message";
http_print_headers(); http_print_headers();
print $service; print $service;
@ -197,14 +197,14 @@ sub http_simulate_ssh_connection {
# http-backend.c for how I got that. Also note that "info" is overloaded; # http-backend.c for how I got that. Also note that "info" is overloaded;
# git uses "info/refs...", while gitolite uses "info" or "info?...". So # git uses "info/refs...", while gitolite uses "info" or "info?...". So
# there's a "/" after info in the list below # there's a "/" after info in the list below
if ($ENV{PATH_INFO} =~ m(^/(.*)/(HEAD$|info/refs$|objects/|git-(?:upload|receive)-pack$))) { if ( $ENV{PATH_INFO} =~ m(^/(.*)/(HEAD$|info/refs$|objects/|git-(?:upload|receive)-pack$)) ) {
my $repo = $1; my $repo = $1;
my $verb = ($ENV{REQUEST_URI} =~ /git-receive-pack/) ? 'git-receive-pack' : 'git-upload-pack'; my $verb = ( $ENV{REQUEST_URI} =~ /git-receive-pack/ ) ? 'git-receive-pack' : 'git-upload-pack';
$ENV{SSH_ORIGINAL_COMMAND} = "$verb '$repo'"; $ENV{SSH_ORIGINAL_COMMAND} = "$verb '$repo'";
} else { } else {
# this is one of our custom commands; could be anything really, # this is one of our custom commands; could be anything really,
# because of the adc feature # because of the adc feature
my ($verb) = ($ENV{PATH_INFO} =~ m(^/(\S+))); my ($verb) = ( $ENV{PATH_INFO} =~ m(^/(\S+)) );
my $args = $ENV{QUERY_STRING}; my $args = $ENV{QUERY_STRING};
$args =~ s/\+/ /g; $args =~ s/\+/ /g;
$ENV{SSH_ORIGINAL_COMMAND} = $verb; $ENV{SSH_ORIGINAL_COMMAND} = $verb;
@ -215,8 +215,9 @@ sub http_simulate_ssh_connection {
} }
my $http_headers_printed = 0; my $http_headers_printed = 0;
sub http_print_headers { sub http_print_headers {
my($code, $text) = @_; my ( $code, $text ) = @_;
return if $http_headers_printed++; return if $http_headers_printed++;
$code ||= 200; $code ||= 200;

View file

@ -397,7 +397,7 @@ sub creator {
return $cache{$user} if $cache{$user}; return $cache{$user} if $cache{$user};
my @extgroups = map { s/^@?/@/; $_; } split ' ', `$rc{GROUPLIST_PGM} $user`; my @extgroups = map { s/^@?/@/; $_; } split ' ', `$rc{GROUPLIST_PGM} $user`;
return ($cache{$user} = \@extgroups); return ( $cache{$user} = \@extgroups );
} }
} }

View file

@ -42,7 +42,7 @@ sub update {
sub bypass { sub bypass {
require Cwd; require Cwd;
Cwd->import; Cwd->import;
gl_log( 'update', getcwd(), '(' . ($ENV{USER} || '?') . ')', 'bypass', @ARGV ); gl_log( 'update', getcwd(), '(' . ( $ENV{USER} || '?' ) . ')', 'bypass', @ARGV );
exit 0; exit 0;
} }

View file

@ -183,7 +183,7 @@ sub trigger {
if ( my ( $module, $sub ) = ( $pgm =~ /^(.*)::(\w+)$/ ) ) { if ( my ( $module, $sub ) = ( $pgm =~ /^(.*)::(\w+)$/ ) ) {
require Gitolite::Triggers; require Gitolite::Triggers;
trace(1, 'trigger', $module, $sub, @args, $rc_section, @_ ); trace( 1, 'trigger', $module, $sub, @args, $rc_section, @_ );
Gitolite::Triggers::run( $module, $sub, @args, $rc_section, @_ ); Gitolite::Triggers::run( $module, $sub, @args, $rc_section, @_ );
} else { } else {

View file

@ -17,14 +17,14 @@ sub input {
# note: we treat %rc as our own internal "poor man's %ENV" # note: we treat %rc as our own internal "poor man's %ENV"
$rc{FROM_SERVER} = $1; $rc{FROM_SERVER} = $1;
trace(3, "from_server: $1"); trace( 3, "from_server: $1" );
if ( $ENV{SSH_ORIGINAL_COMMAND} =~ /^USER=(\S+) SOC=(git-receive-pack '(\S+)')$/ ) { if ( $ENV{SSH_ORIGINAL_COMMAND} =~ /^USER=(\S+) SOC=(git-receive-pack '(\S+)')$/ ) {
# my ($user, $newsoc, $repo) = ($1, $2, $3); # my ($user, $newsoc, $repo) = ($1, $2, $3);
$ENV{SSH_ORIGINAL_COMMAND} = $2; $ENV{SSH_ORIGINAL_COMMAND} = $2;
@ARGV = ($1); @ARGV = ($1);
$rc{REDIRECTED_PUSH} = 1; $rc{REDIRECTED_PUSH} = 1;
trace(3, "redirected_push for user $1"); trace( 3, "redirected_push for user $1" );
} else { } else {
# master -> slave push, no access checks needed # master -> slave push, no access checks needed
$ENV{GL_BYPASS_ACCESS_CHECKS} = 1; $ENV{GL_BYPASS_ACCESS_CHECKS} = 1;
@ -33,14 +33,14 @@ sub input {
# ---------------------------------------------------------------------- # ----------------------------------------------------------------------
my ($mode, $master, %slaves, %trusted_slaves); my ( $mode, $master, %slaves, %trusted_slaves );
sub pre_git { sub pre_git {
return unless $hn; return unless $hn;
# nothing, and I mean NOTHING, happens if HOSTNAME is not set # nothing, and I mean NOTHING, happens if HOSTNAME is not set
trace(1, "pre_git() on $hn"); trace( 1, "pre_git() on $hn" );
my ($repo, $user, $aa) = @_[1, 2, 3]; my ( $repo, $user, $aa ) = @_[ 1, 2, 3 ];
my $sender = $rc{FROM_SERVER} || ''; my $sender = $rc{FROM_SERVER} || '';
$user = '' if $sender and not exists $rc{REDIRECTED_PUSH}; $user = '' if $sender and not exists $rc{REDIRECTED_PUSH};
@ -55,18 +55,17 @@ sub pre_git {
# exclude this host from both the master and slave lists) # exclude this host from both the master and slave lists)
return if $aa eq 'R'; return if $aa eq 'R';
trace(1, "mirror", "pre_git", $repo, "user=$user", "sender=$sender", "mode=$mode", trace( 1, "mirror", "pre_git", $repo, "user=$user", "sender=$sender", "mode=$mode", ( $rc{REDIRECTED_PUSH} ? ("redirected") : () ) );
($rc{REDIRECTED_PUSH} ? ("redirected") : ()));
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# case 1: we're master or slave, normal user pushing to us # case 1: we're master or slave, normal user pushing to us
if ($user and not $rc{REDIRECTED_PUSH}) { if ( $user and not $rc{REDIRECTED_PUSH} ) {
trace(3, "case 1, user push"); trace( 3, "case 1, user push" );
return if $mode eq 'local' or $mode eq 'master'; return if $mode eq 'local' or $mode eq 'master';
if ($trusted_slaves{$hn}) { if ( $trusted_slaves{$hn} ) {
trace(3, "redirecting to $master"); trace( 3, "redirecting to $master" );
trace(1, "redirect to $master"); trace( 1, "redirect to $master" );
exec("ssh", $master, "USER=$user", "SOC=$ENV{SSH_ORIGINAL_COMMAND}"); exec( "ssh", $master, "USER=$user", "SOC=$ENV{SSH_ORIGINAL_COMMAND}" );
} else { } else {
_die "$hn: pushing '$repo' to slave '$hn' not allowed"; _die "$hn: pushing '$repo' to slave '$hn' not allowed";
} }
@ -74,8 +73,8 @@ sub pre_git {
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# case 2: we're slave, master pushing to us # case 2: we're slave, master pushing to us
if ($sender and not $rc{REDIRECTED_PUSH}) { if ( $sender and not $rc{REDIRECTED_PUSH} ) {
trace(3, "case 2, master push"); trace( 3, "case 2, master push" );
_die "$hn: '$repo' is local" if $mode eq 'local'; _die "$hn: '$repo' is local" if $mode eq 'local';
_die "$hn: '$repo' is native" if $mode eq 'master'; _die "$hn: '$repo' is native" if $mode eq 'master';
_die "$hn: '$sender' is not the master for '$repo'" if $master ne $sender; _die "$hn: '$sender' is not the master for '$repo'" if $master ne $sender;
@ -84,8 +83,8 @@ sub pre_git {
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# case 3: we're master, slave sending a redirected push to us # case 3: we're master, slave sending a redirected push to us
if ($sender and $rc{REDIRECTED_PUSH}) { if ( $sender and $rc{REDIRECTED_PUSH} ) {
trace(3, "case 2, slave redirect"); trace( 3, "case 2, slave redirect" );
_die "$hn: '$repo' is local" if $mode eq 'local'; _die "$hn: '$repo' is local" if $mode eq 'local';
_die "$hn: '$repo' is not native" if $mode eq 'slave'; _die "$hn: '$repo' is not native" if $mode eq 'slave';
_die "$hn: '$sender' is not a valid slave for '$repo'" if not $slaves{$sender}; _die "$hn: '$sender' is not a valid slave for '$repo'" if not $slaves{$sender};
@ -102,9 +101,9 @@ sub pre_git {
sub post_git { sub post_git {
return unless $hn; return unless $hn;
# nothing, and I mean NOTHING, happens if HOSTNAME is not set # nothing, and I mean NOTHING, happens if HOSTNAME is not set
trace(1, "post_git() on $hn"); trace( 1, "post_git() on $hn" );
my ($repo, $user, $aa) = @_[1, 2, 3]; my ( $repo, $user, $aa ) = @_[ 1, 2, 3 ];
# we don't deal with any reads # we don't deal with any reads
return if $aa eq 'R'; return if $aa eq 'R';
@ -115,13 +114,12 @@ sub post_git {
# now you know the repo, get its mirroring details # now you know the repo, get its mirroring details
details($repo); details($repo);
trace(1, "mirror", "post_git", $repo, "user=$user", "sender=$sender", "mode=$mode", trace( 1, "mirror", "post_git", $repo, "user=$user", "sender=$sender", "mode=$mode", ( $rc{REDIRECTED_PUSH} ? ("redirected") : () ) );
($rc{REDIRECTED_PUSH} ? ("redirected") : ()));
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# case 1: we're master or slave, normal user pushing to us # case 1: we're master or slave, normal user pushing to us
if ($user and not $rc{REDIRECTED_PUSH}) { if ( $user and not $rc{REDIRECTED_PUSH} ) {
trace(3, "case 1, user push"); trace( 3, "case 1, user push" );
return if $mode eq 'local'; return if $mode eq 'local';
# slave was eliminated earlier anyway, so that leaves 'master' # slave was eliminated earlier anyway, so that leaves 'master'
@ -133,16 +131,16 @@ sub post_git {
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# case 2: we're slave, master pushing to us # case 2: we're slave, master pushing to us
if ($sender and not $rc{REDIRECTED_PUSH}) { if ( $sender and not $rc{REDIRECTED_PUSH} ) {
trace(3, "case 2, master push"); trace( 3, "case 2, master push" );
# nothing to do # nothing to do
return; return;
} }
# ------------------------------------------------------------------ # ------------------------------------------------------------------
# case 3: we're master, slave sending a redirected push to us # case 3: we're master, slave sending a redirected push to us
if ($sender and $rc{REDIRECTED_PUSH}) { if ( $sender and $rc{REDIRECTED_PUSH} ) {
trace(3, "case 2, slave redirect"); trace( 3, "case 2, slave redirect" );
# find all slaves and push to each of them # find all slaves and push to each of them
push_to_slaves($repo); push_to_slaves($repo);
@ -162,27 +160,27 @@ sub post_git {
%slaves = slaves($repo); %slaves = slaves($repo);
$mode = mode($repo); $mode = mode($repo);
%trusted_slaves = trusted_slaves($repo); %trusted_slaves = trusted_slaves($repo);
trace(3, $master, $mode, join(",", sort keys %slaves), join(",", sort keys %trusted_slaves) ); trace( 3, $master, $mode, join( ",", sort keys %slaves ), join( ",", sort keys %trusted_slaves ) );
} }
sub master { sub master {
return option(+shift, 'mirror.master'); return option( +shift, 'mirror.master' );
} }
sub slaves { sub slaves {
my $ref = git_config(+shift, "^gitolite-options\\.mirror\\.slaves.*"); my $ref = git_config( +shift, "^gitolite-options\\.mirror\\.slaves.*" );
my %out = map { $_ => 1 } map { split } values %$ref; my %out = map { $_ => 1 } map { split } values %$ref;
return %out; return %out;
} }
sub trusted_slaves { sub trusted_slaves {
my $ref = git_config(+shift, "^gitolite-options\\.mirror\\.redirectOK.*"); my $ref = git_config( +shift, "^gitolite-options\\.mirror\\.redirectOK.*" );
# the list of trusted slaves (where we accept redirected pushes from) # the list of trusted slaves (where we accept redirected pushes from)
# is either explicitly given... # is either explicitly given...
my @out = map { split } values %$ref; my @out = map { split } values %$ref;
my %out = map { $_ => 1 } @out; my %out = map { $_ => 1 } @out;
# ...or it's all the slaves mentioned if the list is just a "all" # ...or it's all the slaves mentioned if the list is just a "all"
%out = %slaves if (@out == 1 and $out[0] eq 'all'); %out = %slaves if ( @out == 1 and $out[0] eq 'all' );
return %out; return %out;
} }
@ -202,7 +200,7 @@ sub push_to_slaves {
my $u = $ENV{GL_USER}; my $u = $ENV{GL_USER};
delete $ENV{GL_USER}; # why? see src/commands/mirror delete $ENV{GL_USER}; # why? see src/commands/mirror
for my $s (sort keys %slaves) { for my $s ( sort keys %slaves ) {
system("gitolite mirror push $s $repo &"); system("gitolite mirror push $s $repo &");
} }