RPM-Specfile
view release on metacpan or search on metacpan
#!/usr/bin/perl -w
eval 'exec /usr/bin/perl -w -S $0 ${1+"$@"}'
if 0; # not running under some shell
use strict;
#
# Use libraries
use Getopt::Long;
use File::Basename;
use File::Copy qw(copy);
use Archive::Tar;
use File::Temp qw(tempdir);
use URI::Escape qw(uri_escape);
use Cwd;
use YAML;
use RPM::Specfile;
use vars qw/$VERSION/;
$VERSION = $RPM::Specfile::VERSION;
#
# Setup some defaults
my %defaults;
my $orig_cmd = join(" ", $0, @ARGV);
$defaults{'outdir'} = './';
$defaults{'tmpdir'} = '/tmp';
$defaults{'release'} = '8';
$defaults{'installdirs'} = "";
{
my ($username, $fullname) = (getpwuid($<))[0,6];
$fullname = (split /,/, $fullname)[0];
$defaults{'email'} = $fullname ? $fullname . ' ' : '';
$defaults{'email'} .= '<';
$defaults{'email'} .= $ENV{REPLYTO} || $username . '@redhat.com';
$defaults{'email'} .= '>';
}
#
# Parse command line options
my %options;
GetOptions(\%options, "outdir=s", "tmpdir=s", "email=s", "name|n=s", "create",
"test|t", "epoch|e=n", "version|v=s", "release|r=s", "patch=s@",
"noarch", "arch|a=s", "noperlreqs", "usage", "buildall|b", "installdirs=s",
"descfile=s", "help", "requires=s@", "buildrequires=s@", "sign", "post=s",
"pre=s", "preun=s", "postun=s", "just-spec|j", 'use-usr-local', 'packager') or die_usage();
my $fullname = shift;
my $content;
my @requires = @{$options{'requires'} || []};
my @build_requires = @{$options{'build-requires'} || []};
if(defined($options{'usage'})) {
usage();
exit(0);
}
if ($options{'just-spec'} and $options{'buildall'}) {
print "Error: just-spec and build cannot both be specified.\n";
exit(1);
}
#
# Make sure filename was provided
die_usage() unless $fullname;
#
# If we were given a description file, make sure it exists
if ($options{'descfile'}) {
if (! -e $options{'descfile'}) {
print STDERR "Description file given does not exist!\n";
print STDERR "File: ${options{'descfile'}}\n";
exit(1);
}
if (! -r $options{'descfile'}) {
print STDERR "Description file given is not readable!\n";
print STDERR "File: ${options{'descfile'}}\n";
exit(1);
}
}
#
# Overide defaults if necessary, otherwise keep them.
my $tarball = basename($fullname);
my $create = $options{create} || '';
my $email = $options{email} || $defaults{'email'};
my $requires = $options{requires} || [];
my $buildrequires = $options{buildrequires} || [];
my $outdir = $options{outdir} || $defaults{'outdir'};
my $tmpdir = $options{tmpdir} || $defaults{'tmpdir'};
( run in 1.848 second using v1.01-cache-2.11-cpan-d8267643d1d )