RPM-Specfile

 view release on metacpan or  search on metacpan

cpanflute2  view on Meta::CPAN

#!/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 )