add svnserve exec support
This commit is contained in:
parent
820d3f5948
commit
d95e868620
|
@ -35,6 +35,7 @@ our $REPOPATT_PATT=qr(^\@?[0-9a-zA-Z][\\^.$|()[\]*+?{}0-9a-zA-Z._\@/-]*$);
|
||||||
|
|
||||||
# these come from the RC file
|
# these come from the RC file
|
||||||
our ($REPO_UMASK, $GL_WILDREPOS, $GL_PACKAGE_CONF, $GL_PACKAGE_HOOKS);
|
our ($REPO_UMASK, $GL_WILDREPOS, $GL_PACKAGE_CONF, $GL_PACKAGE_HOOKS);
|
||||||
|
our ($SVNSERVE);
|
||||||
our %repos;
|
our %repos;
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
@ -385,6 +386,8 @@ sub special_cmd
|
||||||
&ext_cmd_htpasswd($HTPASSWD_FILE);
|
&ext_cmd_htpasswd($HTPASSWD_FILE);
|
||||||
} elsif ($RSYNC_BASE and $cmd =~ /^rsync /) {
|
} elsif ($RSYNC_BASE and $cmd =~ /^rsync /) {
|
||||||
&ext_cmd_rsync($GL_CONF_COMPILED, $RSYNC_BASE, $cmd);
|
&ext_cmd_rsync($GL_CONF_COMPILED, $RSYNC_BASE, $cmd);
|
||||||
|
} elsif ($SVNSERVE and $cmd eq 'svnserve -t') {
|
||||||
|
&ext_cmd_svnserve($SVNSERVE);
|
||||||
} else {
|
} else {
|
||||||
# if the user is allowed a shell, just run the command
|
# if the user is allowed a shell, just run the command
|
||||||
exec $ENV{SHELL}, "-c", $cmd if $shell_allowed;
|
exec $ENV{SHELL}, "-c", $cmd if $shell_allowed;
|
||||||
|
@ -480,4 +483,17 @@ EOFhtp
|
||||||
die "htpasswd command seems to have failed with $rc return code...\n" if $rc;
|
die "htpasswd command seems to have failed with $rc return code...\n" if $rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
# external command helper: svnserve
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
sub ext_cmd_svnserve
|
||||||
|
{
|
||||||
|
my $SVNSERVE = shift;
|
||||||
|
|
||||||
|
$SVNSERVE =~ s/%u/$ENV{GL_USER}/g;
|
||||||
|
exec $SVNSERVE;
|
||||||
|
die "svnserve exec failed\n";
|
||||||
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
Loading…
Reference in a new issue