[project @ 1996-07-25 20:43:49 by partain]
[ghc-hetmet.git] / ghc / utils / parallel / template.pl
1 #!/usr/local/bin/perl
2 ##############################################################################
3 # Time-stamp: <Sat Oct 28 1995 23:00:47 Stardate: [-31]6509.58 hwloidl>
4 #
5 # Usage: do read_template(<template_file_name>,<input_file_name>);
6 #
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.
10 #
11 ##############################################################################
12
13 require "aux.pl";
14
15 sub read_template {
16     local ($org_templ_file_name,$input) = @_;
17     local ($f,$templ_file_name);
18
19     # Resolve 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 ); 
28
29     if ( $opt_v ) {
30         print "Reading template file $templ_file_name ...\n";
31     }
32
33     ($f = ($input eq "-" ? "stdin" : $input)) =~ s/.rts//;
34
35     open(TEMPLATE,"cat $templ_file_name | sed -e 's/\$0/$f/' |") 
36         || die "Couldn't open file $templ_file_name";
37
38     while (<TEMPLATE>) {
39       next if /^\s*$/ || /^--/;
40       if (/^\s*G[:,;.\s]+([^\n]+)$/) {
41           $list_str = $1;
42           $list_str =~ s/[\(\)\[\]]//g;
43           @exec_times = split(/[,;. ]+/, $list_str);
44       } elsif (/^\s*F[:,;.\s]+([^\n]+)$/) {
45           $list_str = $1;
46           $list_str =~ s/[\(\)\[\]]//g;
47           @fetch_times = split(/[,;. ]+/, $list_str);
48       } elsif (/^\s*A[:,;.\s]+([^\n]+)$/) {
49           $list_str = $1;
50           $list_str =~ s/[\(\)\[\]]//g;
51           @has = split(/[,;. ]+/, $list_str);
52       } elsif (/^\s*C[:,;.\s]+([^\n]+)$/) {
53           $list_str = $1;
54           $list_str =~ s/[\(\)\[\]]//g;
55           @comm_percs = split(/[,;. ]+/, $list_str);
56       } elsif (/^\s*S[:,;.\s]+([^\n]+)$/) {
57           $list_str = $1;
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]+)$/) {
76          $gp_file_name = $1;
77          # $ps_file_name = &dat2ps_name($gp_file_name);
78       } elsif (/^\s*Xcorr[:,;.\s]+([\S]+)$/) {
79          $corr_file_name = $1;
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]+)$/) {
98          $pe_file_name = $1;
99       } elsif (/^\s*Xsn[:,;.\s]+([\S]+)$/) {
100          $sn_file_name = $1;
101
102       } elsif (/^\s*XRTS[:,;.\s]+([\S]+)$/) {
103           $rts_file_name = $1;
104       } elsif (/^\s*XHAS[:,;.\s]+([\S]+)$/) {
105           $has_file_name = $1;
106       } elsif (/^\s*XFTS[:,;.\s]+([\S]+)$/) {
107           $fts_file_name = $1;
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]+)$/) {
113           $cps_file_name = $1;
114       } elsif (/^\s*XCCPS[:,;.\s]+([\S]+)$/) {
115           $ccps_file_name = $1;
116
117       } elsif (/^\s*\-[:,;.\s]+([\S]+)$/) {
118          $input = $1;
119       } elsif (/^\s*L[:,;\s]+(.*)$/) {
120          $str = $1;
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]+)$/) {
125          $gray = $1;
126       } elsif (/^\s*k[:,;.\s]+([\S]+)$/) {
127          $no_of_clusters = $1;
128       } elsif (/^\s*e[:,;.\s]+([\S]+)$/) {
129          $ext_size = $1;
130       } elsif (/^\s*v.*$/) {
131          $verbose = 1;
132       } elsif (/^\s*T.*$/) {
133          $opt_T = 1;
134      }
135   }
136   close(TEMPLATE);
137 }      
138
139 # ----------------------------------------------------------------------------
140
141 1;