oracle-barebone.pl 1.2 KB

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