use IO; # input specification my ($version, $platform) = @ARGV; my @list = (qw( lib/*.a lib/*.so* lib/sysliblist lib lib32/*.a lib32/*.so* lib32/sysliblist lib32 rdbms/ !rdbms/jlib/ network/mesg/ network ocommon/ !ocommon/nls/lbuilder/jlib/ bin/sqlplus bin sqlplus/ oracore/zoneinfo/ oracore network/admin/ network/admin/samples/ )); # determine effective file list my @files = (); foreach my $file (@list) { my $not = 0; if ($file =~ m|^!(.+)$|) { $not = 1; $file = $1; } my @paths = (); if ($file =~ m|.+/$|) { foreach my $p (`find $file -depth -print`) { $p =~ s|\r?\n$||s; push(@paths, $p); } } else { push(@paths, glob($file)); } if ($not) { my @files2 = grep { my $x = $_; not grep(/^\Q$x\E$/, @paths); } @files; @files = @files2; } else { push(@files, @paths); } } # roll CPIO archives my $io = new IO::File "| cpio -o 2>/dev/null" . "| bzip2 -9 >oracle-barebone-$version.$platform.cpio.bz2"; $io->print(join("\n", @files)."\n"); $io->close();