X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.main.git;a=blobdiff_plain;f=yarrg%2Fweb%2Fsource.tar.gz;h=0e47a83e38d755720427b9c453db6bed6cf33288;hp=157b65fe5b6e4c36b90632d0900fa231fcf32d44;hb=55b97973486c7568b36c89aa4b16e2d5b42f0614;hpb=1e054798d3b98978221871919c52af06464d48f2 diff --git a/yarrg/web/source.tar.gz b/yarrg/web/source.tar.gz index 157b65f..0e47a83 100755 --- a/yarrg/web/source.tar.gz +++ b/yarrg/web/source.tar.gz @@ -33,39 +33,18 @@ the YARRG website's source code. -<%perl> -use IO::Pipe; +<%flags> +inherit => undef +<%perl> use CommodsWeb; +use Commods; $r->content_type('application/octet-stream'); $m->flush_buffer(); -$ENV{'YPPSC_YARRG_SRCBASE'}= $sourcebasedir; -my $pipe= new IO::Pipe or die $!; -my $pid= fork(); defined $pid or die $!; -if (!$pid) { - $pipe->writer(); - exec '/bin/sh','-c',' - cd -P "$YPPSC_YARRG_SRCBASE" - ( - git-ls-files -z; - git-ls-files -z --others --exclude-from=.gitignore; - if test -d .git; then find .git -print0; fi - ) | cpio -Hustar -o --quiet -0 -R 1000:1000 - '; - die $!; -} -$pipe->reader(); - -my ($d, $l); -while ($l= read $pipe, $d, 65536) { - print $d; +source_tarball(sourcebasedir(), sub { + print $_[0]; $m->flush_buffer(); -} -waitpid $pid,0; -defined $l or die "read pipe $!"; -$pipe->error and die "pipe error $!"; -close $pipe; -# deliberately ignore errors +})