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=13cd22f4d9040724a67d18839794b649493f2911;hb=55b97973486c7568b36c89aa4b16e2d5b42f0614;hpb=4fb78394230484f9e923039f4f177fefb04ae8f3 diff --git a/yarrg/web/source.tar.gz b/yarrg/web/source.tar.gz index 13cd22f..0e47a83 100755 --- a/yarrg/web/source.tar.gz +++ b/yarrg/web/source.tar.gz @@ -36,41 +36,15 @@ <%flags> inherit => undef <%perl> -use IO::Pipe; 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 || \ - cpio -Hustar -o --quiet -0 - ) | gzip - '; - 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 +})