oracle-barebone.pl 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. use IO;
  2. # input specification
  3. my ($version, $platform) = @ARGV;
  4. my @list = (qw(
  5. lib/*.a
  6. lib/*.so*
  7. lib/sysliblist
  8. lib32/*.a
  9. lib32/*.so*
  10. lib32/sysliblist
  11. lib
  12. rdbms/
  13. !rdbms/jlib/
  14. network/mesg/
  15. network
  16. ocommon/
  17. !ocommon/nls/lbuilder/jlib/
  18. bin/sqlplus
  19. sqlplus/
  20. oracore/zoneinfo/
  21. network/admin/samples/
  22. ));
  23. # determine effective file list
  24. my @files = ();
  25. foreach my $file (@list) {
  26. my $not = 0;
  27. if ($file =~ m|^!(.+)$|) {
  28. $not = 1;
  29. $file = $1;
  30. }
  31. my @paths = ();
  32. if ($file =~ m|.+/$|) {
  33. foreach my $p (`find $file -depth -print`) {
  34. $p =~ s|\r?\n$||s;
  35. push(@paths, $p);
  36. }
  37. }
  38. else {
  39. push(@paths, glob($file));
  40. }
  41. if ($not) {
  42. my @files2 = grep {
  43. my $x = $_;
  44. not grep(/^\Q$x\E$/, @paths);
  45. } @files;
  46. @files = @files2;
  47. }
  48. else {
  49. push(@files, @paths);
  50. }
  51. }
  52. # roll CPIO archives
  53. my $io = new IO::File
  54. "| cpio -o 2>/dev/null" .
  55. "| bzip2 -9 >oracle-barebone-$version.$platform.cpio.bz2";
  56. $io->print(join("\n", @files)."\n");
  57. $io->close();