in reply to Re: How to find ant home/specific directory in Linux using perl
in thread How to find ant home/specific directory in Linux using perl

Let me rephrase the question Lets assume I have a ant directory "org.apache.ant_" at different location in 2 diffrent version of weblogic server In weblogic 5 it is in A/B/org.apache.ant.1.3/bin In weblogic 6 it is A/B/C/org.apache.ant.1.4/bin I know it exists in Directory A but trying to write a script inside A where it exists soo my script should find for org.apache.ant.x.y and return A/B/org.apache.ant.1.3 or A/B/C/org.apache.ant.1.4
  • Comment on Re^2: How to find ant home/specific directory in Linux using perl

Replies are listed 'Best First'.
Re^3: How to find ant home/specific directory in Linux using perl
by Athanasius (Archbishop) on Feb 05, 2014 at 15:53 UTC

    OK, you need to search directory A recursively until you find the first sub-directory named org.apache.ant.x.y (where x and y are integers). The module File::Find::Rule is useful for this.

    I created a directory structure like this:

    862_SoPW |-- weblogic_5 |-- A |-- B |-- org.apache.ant.1.3 |-- bin |-- weblogic_6 |-- A |-- B |-- C |-- org.apache.ant.1.4 |-- bin

    and ran the following script from directory 862_SoPW:

    #! perl use strict; use warnings; use File::Find::Rule; for (5 .. 7) { my $ant_home = get_ant_home('weblogic_' . $_) // 'not found'; print "In weblogic_$_, ant home is: $ant_home\n"; } sub get_ant_home { my $test_dir = shift; my $module_dir = $test_dir . '/A'; my @subdirs = File::Find::Rule->directory->in($module_dir); for (@subdirs) { return $_ if /org\.apache\.ant\.\d+\.\d+$/; } }

    Output:

    1:45 >perl 862_SoPW.pl In weblogic_5, ant home is: weblogic_5/A/B/org.apache.ant.1.3 In weblogic_6, ant home is: weblogic_6/A/B/C/org.apache.ant.1.4 In weblogic_7, ant home is: not found 1:46 >

    I think you should be able to adapt this to your requirements.

    Hope that helps,

    Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,