@rem = '--*-Perl-*-- @echo off if "%OS%" == "Windows_NT" goto WinNT perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9 goto endofperl :WinNT perl -x -S "%0" %* if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl if %errorlevel% == 9009 echo You do not have Perl in your PATH. if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul goto endofperl @rem '; #!perl #line 15 exit unless -e 'Makefile.pl'; `perl Makefile.pl`; `nmake`; `nmake ppd`; &tar_zip; sub tar_zip{ use Archive::Tar; use File::Find; use Archive::Zip qw(:ERROR_CODES :CONSTANTS); my $readme = 'readme.ppm'; my $ppd = &get_ppd; my $package = $ppd; $package =~ s/\.ppd$//i; my $targz = "x86/".$package.".tar.gz"; &rewrite_ppd($ppd,$targz); &write_readme($readme,$ppd); my $tar = Archive::Tar->new(); my @files; find sub {push @files, $File::Find::name;}, "blib"; $tar->add_files(@files); mkdir('x86'); $tar->write($targz,1); my $zipName = $package.".zip"; my $zip = Archive::Zip->new(); for ($ppd,$readme,$targz){ $zip->addFile($_); } $zip->writeToFileNamed($zipName); `mv $targz .`; `rd x86`; } sub write_readme{ my ($readme,$ppd) = @_; local *FILE; open FILE ,">$readme"; print FILE<<"EOF"; To install this PPM package, run the following command in the current directory: ppm install $ppd EOF close FILE; } sub rewrite_ppd{ my ($ppd,$targz) = @_; local *FILE; open FILE ,"$ppd"; my @file = ; close FILE; for (@file){ if (/\n}; last; } } open FILE ,">$ppd"; print FILE @file; close FILE; } sub get_ppd{ local *DIR; opendir DIR ,'.'; my $ppd; ($ppd) = grep (/\.ppd$/,readdir DIR); close DIR; $ppd; } __END__ :endofperl