Alien-wxWidgets

 view release on metacpan or  search on metacpan

script/make_ppm.pl  view on Meta::CPAN


foreach ( @files ) {
  if( m[\.(?:lib|a|h)$]i
      ) {
    push @dev, $_;
    next;
  }

  push @bin, $_;
}

my $auth   = 'Mattia Barbon <mbarbon@cpan.org>';
my $wx_ver = Module::Info->new_from_file( 'lib/Alien/wxWidgets.pm' )->version;

my @ppms =
  ( { files    => [ @bin ],
      package  => 'Alien-wxWidgets',
      version  => $wx_ver,
      abstract => 'get information about a wxWidgets build',
      author   => $auth,
    },
    { files    => [ @dev ],
      package  => 'Alien-wxWidgets-dev',
      version  => $wx_ver,
      abstract => 'developement files for Alien-wxWidgets',
      author   => $auth,
    },
  );

foreach my $ppm ( @ppms ) {
  make_ppm( %$ppm );
}

sub make_ppm {
  my %data = @_;
  my $tar = Archive::Tar->new;
  my $pack_ver = join ",", (split (/\./, $data{version}), (0) x 4) [0 .. 3];
  my $author = $data{author}; $author =~ s/</&lt;/g; $author =~ s/>/&gt;/g;
  my $arch = $Config{archname} . ( $] >= 5.008 ? '-5.8' : '' );
  my $base = $data{package} . '-' . $data{version};
  my $tarfile = "$base-ppm.tar.gz";
  my $ppdfile = "$base.ppd";
  my $ppd = <<EOT;
<SOFTPKG NAME="$data{package}" VERSION="$pack_ver">
	<TITLE>$data{package}</TITLE>
	<ABSTRACT>$data{abstract}</ABSTRACT>
	<AUTHOR>$author</AUTHOR>
	<IMPLEMENTATION>
		<OS NAME="$^O" />
                <ARCHITECTURE NAME="$arch" />
                <CODEBASE HREF="$tarfile" />
        </IMPLEMENTATION>
</SOFTPKG>
EOT

  $tar->add_files( @{$data{files}} );
  $tar->write( $tarfile, 9 );

  local *PPD;
  open PPD, "> $ppdfile" or die "open '$ppdfile': $!";
  binmode PPD;
  print PPD $ppd;
  close PPD;
}

exit 0;



( run in 1.479 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )