1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
#! perl
use strict;
use Getopt::Long;
use Config;
#
# Do a perl check for version >= 5.005. See 'gpt-translate-interpreter' should you
# need to alter the invocation path to a valid perl interpreter in the GPT front-end
# programs.
#
if ( ! ( defined eval "require 5.005" ) )
{
die "GPT requires at least Perl version 5.005";
}
my $gpath = $ENV{GPT_LOCATION};
if (!defined($gpath))
{
$gpath = "/usr";
}
if (!defined($gpath))
{
die "GPT_LOCATION or GLOBUS_LOCATION needs to be set before running this script"
}
@INC = ("$gpath/lib/perl", "$gpath/lib/perl/$Config{'archname'}", @INC);
if ( ! ( defined eval "require Grid::GPT::GPTObject" ) )
{
die("$gpath does not appear to hold a valid GPT installation\n");
}
require Pod::Usage;
my $VERSION = 0.01;
my $srcdir = cwd();
my $flavor = "noflavor";
my $verbose = 0;
my ($help, $man);
# sub pod2usage {
# my $ex = shift;
# print "gpt_generate_bin_pkg_data [-verbose -help] -flavor=build_flavor src_metadata_file\n";
# exit $ex;
# }
GetOptions( 'flavor=s' => \$flavor, 'verbose=i' => \$verbose, 'help' => \$help)
or Pod::Usage::pod2usage(1);
Pod::Usage::pod2usage(0) if $help;
Pod::Usage::pod2usage(-verbose => 2) if $man;
require Grid::GPT::PackageFactory;
require Grid::GPT::V1::Definitions;
use Cwd;
my $srcfile = shift;
my $factory = new Grid::GPT::PackageFactory;
my $pkg = $factory->type_of_package($srcfile);
$pkg->read_metadata_file($srcfile);
my @pkgtypes = @Grid::GPT::V1::Definitions::package_types;
for my $typ (@pkgtypes) {
next if $typ eq 'src';
my $type_flavor = $flavor;
$type_flavor = "noflavor"
if defined ($Grid::GPT::V1::Definitions::noflavor_pkg_types{$typ});
# Don't put down pkgdata if there isn't a filelist
next unless ( -f "${type_flavor}_${typ}.filelist" );
my $out = $srcfile;
$out =~ s/_src/_$ {type_flavor}_$typ/;
my $bin_pkg = $pkg->convert_metadata($typ, $flavor);
$bin_pkg->output_metadata_file($out);
}
__END__
|