Tuesday, 12 August 2014

html + tag change + perl

Original:

<td class="build_module">UDRLIB</td><td class="build_file">libudrutil.so</td><td class="build_passed"><a href="http://lund.lhs-systems.com/~develop/nb/archive/I_BSCSIX_R2_AMN03/140620_0100/batch/2/out/log/john.log" target="_blank
<td class="build_module">XBSCS</td><td class="build_file">xbscs</td><td class="build_passed"><a href="http://lund.lhs-systems.com/~develop/nb/archive/I_BSCSIX_R2_AMN03/140620_0100/batch/2/out/log/sam.log" target="_blank

After Changes:

<td class="build_module">UDRLIB</td><td class="build_file">libudrutil.so</td><td class="build_passed"><a href="http://lund.lhs-systems.com/~develop/nb/archive/I_BSCSIX_R2_AMN03/140620_0100/batch/2/out/lib/hpux11_ia64.x/libudrutil.so" target="_blank

<td class="build_module">XBSCS</td><td class="build_file">xbscs</td><td class="build_passed"><a href="http://lund.lhs-systems.com/~develop/nb/archive/I_BSCSIX_R2_AMN03/140620_0100/batch/2/out/bin/hpux11_ia64.x/xbscs" target="_blank

--------------------------------------------------------------------------------------------------------------------------------------

Script:

open("DELIVER","deliver");
open("FILE","samnow");
@list=<DELIVER>;
@line=<FILE>;
my $machine=machine_name();
print "machine:<$machine>\n";
    for($i=0;$i<@line;$i++)
        {
        if(($line[$i]=~/\/batch\//)&&($line[$i]=~/class\=\"build_module\"/))
            {  
            if($line[$i]=~/(class="build_file")(\>)([a-z,A-Z,0-9,_,-,+]+.so)(\<\/td)/)
                {
                chomp($3);
                    &check($3,lib,$machine);  
                }
   
            elsif($line[$i]=~/(class="build_file")(\>)([a-z,A-Z,0-9,_,-,+]+.a)(\<\/td)/)
                {
                chomp($3);
                &check($3,lib,$machine);
                }
            elsif($line[$i]=~/(class="build_file")(\>)([a-z,A-Z,0-9,_,-,+]+)(\<\/td)/)
                {
                chomp($3);
                &check($3,bin,$machine);
                }
            }
        }

sub machine_name
    {
    for($i=0;$i<@line;$i++)
        {
        if(($line[$i]=~/batch/)&&($line[$i]=~/bin/))
            {
            if($line[$i]=~/(\/bin\/)([a-z,A-Z,0-9,_,-,\.,+]+\.x)/)
                {
                chomp($2);
                return $2;  
                last;
                }
            }
        }
    }


 sub check
     {
     $machine=$_[2];
     $deliv=$_[1];
      chomp($checking=$_[0]);
      foreach (@list)
         {
         chomp($_);
         if("$checking" eq "$_" )
             {
            find_replace($checking,$deliv,$machine);
             }
         }
      
     }  

sub find_replace
    {
    $checking_final=$_[0];
    $deliv_final=$_[1];
    $machine_nam=$_[2];
    if ($line[$i] =~ /\/log\//)
    {
    if($line[$i]=~/(\/out\/log\/)([a-z,A-Z,0-9,_,-,+]+.log)/)
        {
        $line[$i]=~s/\/$2//g;

            if ($deliv_final eq "lib")
                {
                $line[$i]=~s/\/log/\/lib\/$machine_nam\/$checking_final/g;
                }
            elsif ($deliv_final eq "bin")
                {
                $line[$i]=~s/\/log/\/bin\/$machine_nam\/$checking_final/g;
                }
            print $line[$i]."\n";
            }
        }
    }


_____________________________________________________________________________________________