2 ##############################################################################
3 # Time-stamp: <Sat Oct 28 1995 23:00:47 Stardate: [-31]6509.58 hwloidl>
5 # Usage: do read_template(<template_file_name>,<input_file_name>);
7 # Read the template file <template_file_name> as defined in /dev/null.
8 # Set global variables as defined in the template file.
9 # This is mainly used in gran-extr and RTS2gran.
11 ##############################################################################
16 local ($org_templ_file_name,$input) = @_;
17 local ($f,$templ_file_name);
20 $gran_dir = $ENV{GRANDIR} ? $ENV{GRANDIR} : $ENV{HOME} ;
21 $templ_file_name = ( $org_templ_file_name eq '.' ? "TEMPL"
22 #^^^ default file name
23 : $org_templ_file_name eq ',' ? $gran_dir . "/bin/TEMPL"
24 #^^^ global master template
25 : $org_templ_file_name eq '/' ? $gran_dir . "/bin/T0"
26 #^^ template, that throws away most of the info
27 : $org_templ_file_name );
30 print "Reading template file $templ_file_name ...\n";
33 ($f = ($input eq "-" ? "stdin" : $input)) =~ s/.rts//;
35 open(TEMPLATE,"cat $templ_file_name | sed -e 's/\$0/$f/' |")
36 || die "Couldn't open file $templ_file_name";
39 next if /^\s*$/ || /^--/;
40 if (/^\s*G[:,;.\s]+([^\n]+)$/) {
42 $list_str =~ s/[\(\)\[\]]//g;
43 @exec_times = split(/[,;. ]+/, $list_str);
44 } elsif (/^\s*F[:,;.\s]+([^\n]+)$/) {
46 $list_str =~ s/[\(\)\[\]]//g;
47 @fetch_times = split(/[,;. ]+/, $list_str);
48 } elsif (/^\s*A[:,;.\s]+([^\n]+)$/) {
50 $list_str =~ s/[\(\)\[\]]//g;
51 @has = split(/[,;. ]+/, $list_str);
52 } elsif (/^\s*C[:,;.\s]+([^\n]+)$/) {
54 $list_str =~ s/[\(\)\[\]]//g;
55 @comm_percs = split(/[,;. ]+/, $list_str);
56 } elsif (/^\s*S[:,;.\s]+([^\n]+)$/) {
58 $list_str =~ s/[\(\)\[\]]//g;
59 @sparks = split(/[,;. ]+/, $list_str);
60 } elsif (/^\s*g[:,;.\s]+([\S]+)$/) {
61 ($gran_file_name,$gran_global_file_name, $gran_local_file_name) =
62 &mk_global_local_names($1);
63 } elsif (/^\s*f[:,;.\s]+([\S]+)$/) {
64 ($ft_file_name,$ft_global_file_name, $ft_local_file_name) =
65 &mk_global_local_names($1);
66 } elsif (/^\s*c[:,;.\s]+([\S]+)$/) {
67 ($comm_file_name, $comm_global_file_name, $comm_local_file_name) =
68 &mk_global_local_names($1);
69 } elsif (/^\s*s[:,;.\s]+([\S]+)$/) {
70 ($spark_file_name, $spark_global_file_name, $spark_local_file_name) =
71 &mk_global_local_names($1);
72 } elsif (/^\s*a[:,;.\s]+([\S]+)$/) {
73 ($ha_file_name, $ha_global_file_name, $ha_local_file_name) =
74 &mk_global_local_names($1);
75 } elsif (/^\s*p[:,;.\s]+([\S]+)$/) {
77 # $ps_file_name = &dat2ps_name($gp_file_name);
78 } elsif (/^\s*Xcorr[:,;.\s]+([\S]+)$/) {
80 } elsif (/^\s*Xcumulat-rts[:,;.\s]+([\S]+)$/) {
81 $cumulat_rts_file_name = $1;
82 ($cumulat0_rts_file_name = $1) =~ s/\./0./;
83 } elsif (/^\s*Xcumulat-has[:,;.\s]+([\S]+)$/) {
84 $cumulat_has_file_name = $1;
85 } elsif (/^\s*Xcumulat-fts[:,;.\s]+([\S]+)$/) {
86 $cumulat_fts_file_name = $1;
87 } elsif (/^\s*Xcumulat-cps[:,;.\s]+([\S]+)$/) {
88 $cumulat_cps_file_name = $1;
89 } elsif (/^\s*Xclust-rts[:,;.\s]+([\S]+)$/) {
90 $clust_rts_file_name = $1;
91 } elsif (/^\s*Xclust-has[:,;.\s]+([\S]+)$/) {
92 $clust_has_file_name = $1;
93 } elsif (/^\s*Xclust-fts[:,;.\s]+([\S]+)$/) {
94 $clust_fts_file_name = $1;
95 } elsif (/^\s*Xclust-cps[:,;.\s]+([\S]+)$/) {
96 $clust_cps_file_name = $1;
97 } elsif (/^\s*Xpe[:,;.\s]+([\S]+)$/) {
99 } elsif (/^\s*Xsn[:,;.\s]+([\S]+)$/) {
102 } elsif (/^\s*XRTS[:,;.\s]+([\S]+)$/) {
104 } elsif (/^\s*XHAS[:,;.\s]+([\S]+)$/) {
106 } elsif (/^\s*XFTS[:,;.\s]+([\S]+)$/) {
108 } elsif (/^\s*XLSPS[:,;.\s]+([\S]+)$/) {
109 $lsps_file_name = $1;
110 } elsif (/^\s*XGSPS[:,;.\s]+([\S]+)$/) {
111 $gsps_file_name = $1;
112 } elsif (/^\s*XCPS[:,;.\s]+([\S]+)$/) {
114 } elsif (/^\s*XCCPS[:,;.\s]+([\S]+)$/) {
115 $ccps_file_name = $1;
117 } elsif (/^\s*\-[:,;.\s]+([\S]+)$/) {
119 } elsif (/^\s*L[:,;\s]+(.*)$/) {
121 %logscale = ('g',"xy",'a',"xy",'Cg',"xy",'Ca',"xy",'Yp',"y",'Ys',"y") , next if $str eq ".";
122 $str =~ s/[\(\)\[\]]//g;
123 %logscale = split(/[,;. ]+/, $str);
124 } elsif (/^\s*i[:,;.\s]+([\S]+)$/) {
126 } elsif (/^\s*k[:,;.\s]+([\S]+)$/) {
127 $no_of_clusters = $1;
128 } elsif (/^\s*e[:,;.\s]+([\S]+)$/) {
130 } elsif (/^\s*v.*$/) {
132 } elsif (/^\s*T.*$/) {
139 # ----------------------------------------------------------------------------