X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=collection%2Fdiffstat;fp=collection%2Fdiffstat;h=2baea5bcd1a1e962664c7c4d9334571a16866baa;hb=1960326d487467271f731ff6a62830404a4947af;hp=0000000000000000000000000000000000000000;hpb=ce31209d7230201c69f8f234032a774fbbbc43cd;p=maemian diff --git a/collection/diffstat b/collection/diffstat new file mode 100755 index 0000000..2baea5b --- /dev/null +++ b/collection/diffstat @@ -0,0 +1,68 @@ +#!/usr/bin/perl -w +# diffstat -- maemian collection script for source packages + +# Copyright (C) 1998 Richard Braakman +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, you can find it on the World Wide +# Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free +# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +# MA 02110-1301, USA. + +# This could be written more easily in shell script, but I'm trying +# to keep everything as perl to cut down on the number of processes +# that need to be started in a maemian scan. Eventually all the +# perl code will be perl modules, so only one perl interpreter +# need be started. + +use strict; + +use lib "$ENV{'MAEMIAN_ROOT'}/lib"; +use Util; + +($#ARGV == 1) or fail("syntax: diffstat "); +my $pkg = shift; + +-f "fields/version" or fail("diffstat invoked in wrong directory"); + +open (V, '<', "fields/version") or fail("cannot open fields/version: $!"); +my $ver = ; chomp $ver; +close V; + +unlink('debian-patch'); + +$ver =~ s/^\d://; #Remove epoch for this + +my $diff_file = "${pkg}_${ver}.diff.gz"; +unless (-f $diff_file) { +# we have to write an empty file so that the checks don't crap out. + touch_file('diffstat'); + exit 0; +} + +gunzip_file($diff_file, "debian-patch"); + +open (STAT, '>', "diffstat") or fail("cannot open scripts output file: $!"); +# diffstat is noisy on stderr if its stdout is not a tty. +# Shut it up by redirecting stderr to /dev/null. +open STDERR, ">/dev/null"; +open (DIFF, '-|', qw/diffstat -p1 debian-patch/) + or fail("cannot open pipe to diffstat on debian-patch: $!"); +# Copy all except last line to the STAT file +my $previous; +while () { + print STAT $previous if $previous; + $previous = $_; +} +close DIFF or fail("cannot close pipe to diffstat on debian-patch: $!"); +close STAT or fail("error writing diffstat file: $!");