t/lib-httpd: refactor "one-time-perl" CGI script to not depend on Perl
Our Apache HTTPD setup exposes an "one_time_perl" endpoint to access repositories. If used, we execute the "apply-one-time-perl.sh" CGI script that checks whether we have a "one-time-perl" script. If so, that script gets executed so that it can munge what would be served. Once done, the script gets removed so that it doesn't execute a second time. As the name says, this functionality expects the user to pass a Perl script. This isn't really necessary though: we can just as easily implement the same thing with arbitrary scripts. Refactor the code so that we instead expect an arbitrary script to exist and rename the functionality to "one-time-script". Adapt callers to use shell utilities instead of Perl so that we can drop the PERL_TEST_HELPERS prerequisite. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
de9eeabd71
commit
cee137b7e5
26
t/lib-httpd/apply-one-time-script.sh
Normal file
26
t/lib-httpd/apply-one-time-script.sh
Normal file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
# If "one-time-script" exists in $HTTPD_ROOT_PATH, run the script on the HTTP
|
||||
# response. If the response was modified as a result, delete "one-time-script"
|
||||
# so that subsequent HTTP responses are no longer modified.
|
||||
#
|
||||
# This can be used to simulate the effects of the repository changing in
|
||||
# between HTTP request-response pairs.
|
||||
if test -f one-time-script
|
||||
then
|
||||
LC_ALL=C
|
||||
export LC_ALL
|
||||
|
||||
"$GIT_EXEC_PATH/git-http-backend" >out
|
||||
./one-time-script out >out_modified
|
||||
|
||||
if cmp -s out out_modified
|
||||
then
|
||||
cat out
|
||||
else
|
||||
cat out_modified
|
||||
rm one-time-script
|
||||
fi
|
||||
else
|
||||
"$GIT_EXEC_PATH/git-http-backend"
|
||||
fi
|
||||
Reference in New Issue
Block a user