$stringlength = length( $string );
# Require Parameters: string=command , string=arguments
sub systemcommand($$)
{
my $command = $_[0] ;
my @args = split( " " , $_[1] ) ;
my $result = system $command,@args;
return $result;
}
sub getUserInput()
{
chomp( my $userinput = <STDIN> );
$userinput = trim( $userinput );
return $userinput;
}
sub substringafterchar($$)
{
my $fragment = "";
my $line = $_[0];
my $char = $_[1];
my $charlocation = index( $line , $char );
if( $charlocation >= 0 )
{
$fragment = substr $line , $charlocation + 1;
}
return $fragment;
}
my $fragment = "";
my $line = filecontainskeyword( "/etc/cifspassword" , "username=" );
chomp( $line );
my $char = '=';
my $charlocation = index( $line , $char );
print "equals at $charlocation\n";
if( $charlocation >= 0 )
{
$fragment = substr $line , $charlocation ;
}
return $fragment;
sub getTimestamp()
{
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
$sec = sprintf( "%2.2d" , $sec );
$min = sprintf( "%2.2d" , $min );
$hour = sprintf( "%2.2d" , $hour );
$mday = sprintf( "%2.2d" , $mday );
$mon = sprintf( "%2.2d" , $mon );
$mon = $mon + 1; # to account for the fact that January starts at 0
$year = $year + 1900;
my $timestamp = "$year-$mon-$mday--$hour-$min-$sec" ;
return $timestamp;
}
sub backupFile( ;$ )
{
my $sourcefile = $_[0];
my $backup_file = "";
if( ! -e $sourcefile)
{ print "Cannot create a backup, file does not exist.\n";
}else
{ my $timestamp = getTimestamp();
$backup_file = "$sourcefile.$timestamp" ;
use File::Copy;
copy( $sourcefile , $backup_file ) or die "File cannot be copied.\n";
}
return $backup_file;
}
sub trim( ;$ )
{
my( $string ) = @_; defined $string or die 'Required parameter "string" not defined';
$string =~ s/^\s+//;
$string =~ s/\s+$//;
return $string;
}
sub stringContains( ;$$ )
{
my( $original,
$keyword ) = @_;
defined $original or die 'Required parameter "original" not defined';
defined $keyword or die 'Required parameter "keyword" not defined';
my $result = $original =~ m/($keyword)/ ;
return $result;
}
sub stringContainsWhitespace( ;$ )
{
my( $string ) = @_; defined $string or die 'Required parameter "string" not defined';
my $result = 0;
$result = $string =~ m/\s/ ;
return $result;
}
sub startsWithString( ;$$ )
{
my( $original,
$keyword ) = @_;
defined $original or die 'Required parameter "original" not defined';
defined $keyword or die 'Required parameter "keyword" not defined';
my $result = $original =~ m/^($keyword)/ ;
return $result;
}
sub removeHeader( ;$$ )
{
my( $line,
$header ) = @_;
defined $line or die 'Required parameter "Line" not defined';
defined $header or die 'Required parameter "Header" not defined';
$line =~ s/$header//g;
return $line;
}
sub getStringBeforeDelimiter( ;$$ )
{
my( $line,
$delimiter ) = @_;
defined $line or die 'Required parameter "Line" not defined';
defined $delimiter or die 'Required parameter "Header" not defined';
my $stopIndex = index( $line , $delimiter );
my $result = substr( $line , 0 , $stopIndex );
return $result;
}
sub getPropertyFromFile( ;$$ )
{
my( $identifier,
$file ) = @_;
defined $identifier or die 'Required parameter "Identifier" not defined';
defined $file or die 'Required parameter "File" not defined';
my $line = searchFileContains( $file , $identifier );
my $property = removeHeader( $line , $identifier );
return $property;
}
# returns the line where the string first occurs
sub searchFileContains( ;$$ )
{
my( $data_file,
$keyword )= @_;
defined $data_file or die 'Required parameter in searchFileContains "data_file" not defined';
defined $keyword or die 'Required parameter in searchFileContains "keyword" not defined';
my $found = "";
my $finalresult = "";
if( $keyword eq "" )
{ print "\nCannot replace an empty string \n";
}else
{
open( DATA , "$data_file" ) or die "can't open $data_file $!";
my @array_of_data = <DATA>;
close( DATA );
foreach my $line ( @array_of_data )
{
$found = $line =~ m/$keyword/;
if( $found )
{ $finalresult = $line;
last;
}
}
}
chomp( $finalresult );
return $finalresult;
}