add_parameter (version 1.0)
You can also look at:
#! /usr/bin/perl
##############################################################################
#
# SYNTAX: add_parameter parfile param value type comment
#
# DESCRIPTION: This utility sets a parameter in a given par file.
# DESCRIPTION: If the parameter does not exist, it is created.
#
# VERSION: 1.0
#
# HISTORY: 0.0 -> 1.0 1999-05-07
# HISTORY: Converted from ksh to perl
#
# CALLS: $UTIL/exception
# CALLS: $UTIL/ftool_test
# CALLS: $FTOOL/pset
#
##############################################################################
($parfile, $param, $value, $type, $comment) = @ARGV;
$FTOOL = $ENV{"FTOOL"};
$UTIL = $ENV{"UTIL"};
if ( ! -w $parfile ) {
system("$UTIL/exception $0 3 'No write permission for $parfile'");
exit 3;
}
#chomp($dum = `grep "^${param}," $parfile`);
open PARFILE, "<$parfile";
@parfile_text = <PARFILE>;
$dum = grep /^$param/, @parfile_text;
if ( $dum ) {
#####################
# Existing parameter
#####################
system("$FTOOL/pset ./$parfile $param = \"$value\" \\
>stdout${$}.log 2>stderr${$}.log");
system("$UTIL/ftool_test pset $? $0 1 stdout${$}.log stderr${$}.log");
}
else {
##############################
# Need to add a new parameter
##############################
open PARFILE, ">>$parfile";
for ($type) {
/s/ and do {
###################################
# String value - enclose in quotes
###################################
print PARFILE "${param},${type},h,\"${value}\",,,\"${comment}\"\n";
last;
};
/.*/ and do {
###################
# Non-string value
###################
print PARFILE "${param},${type},h,${value},,,\"${comment}\"\n";
last;
};
}
}
exit 0;