From: Raphael Hertzog Date: Sun, 16 Mar 2008 15:13:03 +0000 (+0100) Subject: New source package format "3.0 (custom)" X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=394e13a880d639a9f495f131573ed4a88b8be887;p=dpkg New source package format "3.0 (custom)" * scripts/Dpkg/Source/Package/V3_0/custom.pm: Module implementing a fake source package format. It provides a convenient way to generate a source package containing arbitrary files. It's meant to be used by helper tools like git-buildpackage or svn-buildpackage. * scripts/Makefile.am, scripts/po/POTFILES.in: Register the above file. --- diff --git a/scripts/Dpkg/Source/Package/V3_0/custom.pm b/scripts/Dpkg/Source/Package/V3_0/custom.pm new file mode 100644 index 00000000..74152f6b --- /dev/null +++ b/scripts/Dpkg/Source/Package/V3_0/custom.pm @@ -0,0 +1,59 @@ +# Copyright 2008 Raphaël Hertzog + +# 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, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +package Dpkg::Source::Package::V3_0::custom; + +use strict; +use warnings; + +use base 'Dpkg::Source::Package'; + +use Dpkg; +use Dpkg::Gettext; +use Dpkg::ErrorHandling qw(error); + +sub parse_cmdline_option { + my ($self, $opt) = @_; + if ($opt =~ /^--target-format=(.*)$/) { + $self->{'options'}{'target_format'} = $1; + return 1; + } + return 0; +} +sub do_extract { + error(_g("Format `3.0 (custom)' is only used to create source packages")); +} + +sub can_build { + my ($self, $dir) = @_; + return (scalar(@{$self->{'options'}{'ARGV'}}), + _g("no files indicated on command line")); +} + +sub do_build { + my ($self, $dir) = @_; + # Update real target format + my $format = $self->{'options'}{'target_format'}; + error(_g("--target-format option is missing")) unless $format; + $self->{'fields'}{'Format'} = $format; + # Add all files + foreach my $file (@{$self->{'options'}{'ARGV'}}) { + $self->add_file($file); + } +} + +# vim:et:sw=4:ts=8 +1; diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 2300d9b2..bfd21546 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -114,6 +114,7 @@ nobase_dist_perllib_DATA = \ Dpkg/Source/Package/V1_0.pm \ Dpkg/Source/Package/V2_0.pm \ Dpkg/Source/Package/V3_0/bzr.pm \ + Dpkg/Source/Package/V3_0/custom.pm \ Dpkg/Source/Package/V3_0/native.pm \ Dpkg/Source/Package/V3_0/git.pm \ Dpkg/Source/Package/V3_0/quilt.pm \ diff --git a/scripts/po/POTFILES.in b/scripts/po/POTFILES.in index 33413ca9..332b74cb 100644 --- a/scripts/po/POTFILES.in +++ b/scripts/po/POTFILES.in @@ -36,6 +36,7 @@ scripts/Dpkg/Source/Package.pm scripts/Dpkg/Source/Package/V1_0.pm scripts/Dpkg/Source/Package/V2_0.pm scripts/Dpkg/Source/Package/V3_0/bzr.pm +scripts/Dpkg/Source/Package/V3_0/custom.pm scripts/Dpkg/Source/Package/V3_0/native.pm scripts/Dpkg/Source/Package/V3_0/git.pm scripts/Dpkg/Source/Package/V3_0/quilt.pm