Newer
Older
# FILENAME... release.pl
#
# USAGE... This PERL script is used in conjunction with a start_epics_xxx
# csh script to setup environment variables for medm.
#
# ORIGINAL AUTHOR: Ron Sluiter
#
# SYNOPSIS... release.pl(<ioctop> directory)
#
#
# MODIFICATION LOG...
# 03/25/04 rls Support for GATEWAY environment variable.
# 04/08/04 rls Bug fix for spaces between macro and '=' sign; e.g. MPF = /home/mpf.
# 01/25/08 rls Support "include" entries without a macro; e.g. "include /home/ioc/configure/MASTER_RELEASE"
# 01/29/08 rls Bug fix; "($macro) =" line is wrong.
#Last Modified: $Date: 2008-01-29 21:18:55 $
use Env;
if ($ENV{GATEWAY} ne "")
{
# Add GATEWAY to macro list.
$applications{GATEWAY} = $ENV{GATEWAY};
}
foreach $file (@files)
{
if (-r "$file")
{
open(IN, "$file") or die "Cannot open $file\n";
while ($line = <IN>)
{
next if ( $line =~ /\s*#/ );
chomp($line);
$_ = $line;
#test for "include" command
($prefix,$post) = /(.*)\s* (.*)/;
($prefix,$macro,$post) = /(.*)\s* \s*\$\((.*)\)(.*)/;
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
if ($macro eq "")
{
#true if no macro is present
#the following looks for
#prefix = post
($prefix,$post) = /(.*)\s* \s*(.*)/;
}
else
{
$base = $applications{$macro};
if ($base eq "")
{
#print "error: $macro was not previously defined\n";
}
else
{
$post = $base . $post;
}
}
push(@files,"$post")
}
else
{
#the following looks for
#prefix = $(macro)post
($prefix,$macro,$post) = /(.*)\s*=\s*\$\((.*)\)(.*)/;
if ($macro eq "")
{
#true ifno macro is present
#the following looks for
#prefix = post
($prefix,$post) = /(.*)\s*=\s*(.*)/;
}
else
{
$base = $applications{$macro};
if ($base eq "")
{
#print "error: $macro was not previously defined\n";
$prefix =~ s/^\s+|\s+$//g; # strip leading and trailing whitespace.
print "set $prefix = $post\n";