testexecmgmt/ucc/Source/UUInterface/config_nistnet_add.pl
changeset 0 3da2a79470a7
equal deleted inserted replaced
-1:000000000000 0:3da2a79470a7
       
     1 #
       
     2 # Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 # All rights reserved.
       
     4 # This component and the accompanying materials are made available
       
     5 # under the terms of "Eclipse Public License v1.0"
       
     6 # which accompanies this distribution, and is available
       
     7 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 #
       
     9 # Initial Contributors:
       
    10 # Nokia Corporation - initial contribution.
       
    11 #
       
    12 # Contributors:
       
    13 #
       
    14 # Description:  
       
    15 #
       
    16 
       
    17 #!/usr/bin/perl
       
    18 #
       
    19 
       
    20 my $NISTNET="/usr/local/bin/cnistnet";
       
    21 my $EFILE="1.txt";
       
    22 my $NFILE="2.txt";
       
    23 
       
    24 #################################################################################################
       
    25 #
       
    26 # Main()
       
    27 #
       
    28 #################################################################################################
       
    29 
       
    30 # DEBUG: Show the passed line
       
    31 my $argc = scalar(@ARGV);
       
    32 my $dstr = "ArgC: $argc\nArgV: @ARGV\n";
       
    33 #print $dstr;
       
    34 
       
    35 # CASE 1 -- REMOVE ENTRIES
       
    36 if( $ARGV[0] =~ /-r/ ) {
       
    37     system( "$NISTNET -r $ARGV[1] $ARGV[2]" );
       
    38     exit( 0 );
       
    39 }
       
    40 
       
    41 # CASE 2 -- NISTNET DOWN
       
    42 if( $ARGV[0] =~ /-d/ ) {
       
    43     system( "$NISTNET -d" );
       
    44     exit( 0 );
       
    45 }
       
    46 
       
    47 
       
    48 # CASE 3 -- ADD ENTRY 
       
    49 
       
    50 # Make sure that NISTNET is running and start it if it isn't
       
    51 my $result = system( "$NISTNET -G | grep \"Emulator is: On\" > /dev/null" );
       
    52 if( $result != 0 ) {
       
    53     system( "$NISTNET -u" );
       
    54     my $result = system( "$NISTNET -G | grep \"Emulator is: On\" > /dev/null" );
       
    55     if( $result != 0 ) {
       
    56 	print( "ERROR: Nistnet is not running.\n" );
       
    57 	exit( -1 );
       
    58     }
       
    59 }
       
    60 
       
    61 
       
    62 # Remove the temporary files created previously
       
    63 system( "rm -f 1.txt 2.txt" );
       
    64 
       
    65 # Now get the nistnet output and put into file 1.txt
       
    66 my $result = system( "$NISTNET -R > $EFILE" );
       
    67 
       
    68 
       
    69 # Grep the nistnet output for our channel
       
    70 my $gstr = "grep -- \"$ARGV[2] $ARGV[3]\" $EFILE";
       
    71 my $result = system( "$gstr > $NFILE" );
       
    72 
       
    73 # DEBUG: print the grep string
       
    74 #print "GREP STRING: $gstr\n";
       
    75 
       
    76 # If the output is <> 0 then no match was found so just call nistnet
       
    77 if( $result != 0 ) {
       
    78 #    print "cmd: $NISTNET @ARGV\n";
       
    79     $result = system( "$NISTNET @ARGV" );
       
    80     exit( $result );
       
    81 }
       
    82 
       
    83 
       
    84 # Open the file containing the previous command line and read it into an array.
       
    85 open( CFILE, "$NFILE" ) or die "ERROR: can't open intermediate file $NFILE.\n";
       
    86 my $cmd = <CFILE>;
       
    87 my @cmdarray = split( " ", $cmd);
       
    88 
       
    89 
       
    90 # DEBUG: print the current configuration
       
    91 #print "Current Configuration: @cmdarray\n";
       
    92 
       
    93 
       
    94 # Look for the passed option in the existing string. If it is found then blank out these entries
       
    95 my $option_to_set = $ARGV[4];
       
    96 my $in_option = 0;
       
    97 my $len = scalar(@cmdarray);
       
    98 for( $i = 0; $i < $len; $i++ ) {
       
    99     my $current_config_token = $cmdarray[$i];
       
   100     if( $current_config_token =~ /^--/ ) {
       
   101 	$in_option = 0;
       
   102     }
       
   103     if( $current_config_token eq $option_to_set ) {
       
   104 	$in_option = 1;
       
   105     }
       
   106     if( $in_option == 1 ) {
       
   107 	$cmdarray[$i] = "";
       
   108     }
       
   109 }
       
   110 
       
   111 # Now append the argument array to the current array
       
   112 $len = scalar(@ARGV);
       
   113 for( $i = 4; $i < $len; $i++ ) {
       
   114     push( @cmdarray, $ARGV[$i] );
       
   115 }
       
   116 
       
   117 # Clear the nistnet cmd as we add this here
       
   118 $cmdarray[0] = "";
       
   119 
       
   120 # DEBUG: We now have the complete string
       
   121 #print "cmda: @cmdarray\n";
       
   122 
       
   123 # Now run the command
       
   124 my $result = system( "$NISTNET @cmdarray" );
       
   125  
       
   126 # Success
       
   127 exit( $result );