r35466 - in /scripts/examples: ./ gen-itp

ryan52-guest at users.alioth.debian.org ryan52-guest at users.alioth.debian.org
Sat May 16 02:30:51 UTC 2009


Author: ryan52-guest
Date: Sat May 16 02:30:46 2009
New Revision: 35466

URL: http://svn.debian.org/wsvn/?sc=1&rev=35466
Log:
add gen-itp, my script to generate ITPs from debian/{copyright,changelog,control}

Added:
    scripts/examples/
    scripts/examples/gen-itp   (with props)

Added: scripts/examples/gen-itp
URL: http://svn.debian.org/wsvn/scripts/examples/gen-itp?rev=35466&op=file
==============================================================================
--- scripts/examples/gen-itp (added)
+++ scripts/examples/gen-itp Sat May 16 02:30:46 2009
@@ -1,0 +1,88 @@
+#!/usr/bin/perl
+
+use strict;
+
+# TODO: add support for debian/copyright files in the form that
+# dh_make creates them, or at least handle debian/copyright not being
+# machine parseable in a nicer way. (replacing the information
+# gathered from there with FIXMEs instead of erroring out)
+
+use Dpkg::Control;
+use Dpkg::Cdata;
+
+sub p {
+    my $line = shift;
+    print $line . "\n";
+}
+my $control = Dpkg::Control->new();
+my $source = $control->get_source;
+my @pkgs = $control->get_packages;
+my $pkg = $pkgs[0];
+my $upstream;
+my @files;
+my $main_files;
+my @licenses;
+my $copyright_file;
+my @descriptions = split("\n", $pkg->{Description});
+my $short_description = $descriptions[0];
+open($copyright_file, "<", "debian/copyright");
+while($_ = parsecdata($copyright_file, "debian/copyright")) {
+    if($_->{'Format-Specification'}) {
+        $upstream = $_;
+    } elsif ($_->{Files}) {
+        if($_->{Files} eq "*") {
+            $main_files = $_;
+        }
+        push @files, $_;
+    } elsif ($_->{License}) {
+        push @licenses, $_;
+    } else {
+        die("unknown block");
+    }
+}
+close $copyright_file;
+my $changelog_file;
+open $changelog_file, "-|", "dpkg-parsechangelog";
+my $changelog = parsecdata($changelog_file, "debian/changelog");
+close $changelog_file;
+
+p "From: " . $changelog->{Maintainer};
+p "To: Debian Bug Tracking System <submit\@bugs.debian.org>";
+p "Subject: ITP: " . $source->{Source} . " -- " . $short_description;
+p "Date: " . `date -R`;
+# ^ that adds an extra newline ... bwahahahaha!
+my $owner;
+if($source->{Uploaders}) {
+    $owner = $source->{Uploaders};
+} else {
+    $owner = $source->{Maintainer};
+}
+p "Package: wnpp";
+p "Owner: " . $owner;
+p "Severity: wishlist";
+p "X-Debbugs-CC: debian-devel\@lists.debian.org";
+p;
+p "* Package name    : " . $source->{Source};
+my $version = $changelog->{Version};
+$version =~ s/-1$//;
+p "  Version         : " . $version;
+p "  Upstream Author : " . $upstream->{'Upstream-Maintainer'};
+my $homepage;
+if($source->{Homepage}) {
+    $homepage = $source->{Homepage};
+} else {
+    $homepage = $upstream->{'Upstream-Source'};
+}
+p "* URL             : " . $homepage;
+p "* License         : " . $main_files->{'License'};
+my $lang;
+if($source->{Source} =~ m/-perl$/) {
+    $lang = "Perl";
+} elsif($source->{Source} =~ m/-ruby$/) {
+    $lang = "Ruby";
+} else {
+    $lang = "FIXME";
+}
+p "  Programming Lang: " . $lang;
+p "  Description     : " . $pkg->{Description};
+

Propchange: scripts/examples/gen-itp
------------------------------------------------------------------------------
    svn:executable = *




More information about the Pkg-perl-cvs-commits mailing list