X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=yarrg%2Fweb%2Fsource.tar.gz;h=0e47a83e38d755720427b9c453db6bed6cf33288;hp=0efb98ba0db2bfbff46d1dadb5da5725ee883b79;hb=53dfe71f6c510ee12bbf6bdaeb3984024d34a7be;hpb=d97ce2e06c50ce30882d3482dfaefa14e52b309f diff --git a/yarrg/web/source.tar.gz b/yarrg/web/source.tar.gz old mode 100644 new mode 100755 index 0efb98b..0e47a83 --- a/yarrg/web/source.tar.gz +++ b/yarrg/web/source.tar.gz @@ -1,35 +1,50 @@ -<%perl> -use IO::Pipe; +<%doc> + + This is part of the YARRG website. YARRG is a tool and website + for assisting players of Yohoho Puzzle Pirates. + + Copyright (C) 2009 Ian Jackson + Copyright (C) 2009 Clare Boothby + + YARRG's client code etc. is covered by the ordinary GNU GPL (v3 or later). + The YARRG website is covered by the GNU Affero GPL v3 or later, which + basically means that every installation of the website will let you + download the source. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation, either version 3 of the + License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + + Yohoho and Puzzle Pirates are probably trademarks of Three Rings and + are used without permission. This program is not endorsed or + sponsored by Three Rings. + + + This Mason component allows visitors to the YARRG website to download + the YARRG website's source code. + + +<%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; - 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 +})