1*b1cdbd2cSJim Jagielski#************************************************************** 2*b1cdbd2cSJim Jagielski# 3*b1cdbd2cSJim Jagielski# Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski# or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski# distributed with this work for additional information 6*b1cdbd2cSJim Jagielski# regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski# to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski# "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski# with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski# 11*b1cdbd2cSJim Jagielski# http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski# 13*b1cdbd2cSJim Jagielski# Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski# software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski# KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski# specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski# under the License. 19*b1cdbd2cSJim Jagielski# 20*b1cdbd2cSJim Jagielski#************************************************************** 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski 25*b1cdbd2cSJim Jagielskipackage par2script::parameter; 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielskiuse Cwd; 28*b1cdbd2cSJim Jagielskiuse par2script::files; 29*b1cdbd2cSJim Jagielskiuse par2script::globals; 30*b1cdbd2cSJim Jagielskiuse par2script::systemactions; 31*b1cdbd2cSJim Jagielski 32*b1cdbd2cSJim Jagielski############################################ 33*b1cdbd2cSJim Jagielski# Parameter Operations 34*b1cdbd2cSJim Jagielski############################################ 35*b1cdbd2cSJim Jagielski 36*b1cdbd2cSJim Jagielski############################################################################### 37*b1cdbd2cSJim Jagielski# Usage: 38*b1cdbd2cSJim Jagielski# perl par2script.pl -i ..\wntmsci8.pro\par,o:\SRX645\wntmsci8.pro\par.m24 39*b1cdbd2cSJim Jagielski# @@C:\DOCUMEN~1\is\LOCALS~1\Temp\mk6pd 40*b1cdbd2cSJim Jagielski# -o ..\wntmsci8.pro\bin\osl\setup_osl.inf 41*b1cdbd2cSJim Jagielski############################################################################### 42*b1cdbd2cSJim Jagielski 43*b1cdbd2cSJim Jagielskisub usage 44*b1cdbd2cSJim Jagielski{ 45*b1cdbd2cSJim Jagielski print <<Ende; 46*b1cdbd2cSJim Jagielski 47*b1cdbd2cSJim Jagielski-------------------------------------------------------------- 48*b1cdbd2cSJim Jagielski$par2script::globals::prog 49*b1cdbd2cSJim JagielskiThe following parameter are needed: 50*b1cdbd2cSJim Jagielski-i: include pathes, comma separated list 51*b1cdbd2cSJim Jagielski-o: setup script file name 52*b1cdbd2cSJim Jagielski-v: writing logfile.txt (optional) 53*b1cdbd2cSJim Jagielski\@\@list: list of all par files 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim JagielskiExample: 56*b1cdbd2cSJim Jagielski perl par2script.pl -i ..\\wntmsci8\\par\,o\:\\SRX645\\wntmsci8\\par.m24 57*b1cdbd2cSJim Jagielski \@\@C\:\\DOCUMEN\~1\\is\\LOCALS\~1\\Temp\\mk6pd 58*b1cdbd2cSJim Jagielski -o ..\\wntmsci8.pro\\bin\\osl\\setup_osl.inf \[-v\] 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski-------------------------------------------------------------- 61*b1cdbd2cSJim JagielskiEnde 62*b1cdbd2cSJim Jagielski exit(-1); 63*b1cdbd2cSJim Jagielski} 64*b1cdbd2cSJim Jagielski 65*b1cdbd2cSJim Jagielski##################################### 66*b1cdbd2cSJim Jagielski# Reading parameter 67*b1cdbd2cSJim Jagielski##################################### 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielskisub getparameter 70*b1cdbd2cSJim Jagielski{ 71*b1cdbd2cSJim Jagielski while ( $#ARGV >= 0 ) 72*b1cdbd2cSJim Jagielski { 73*b1cdbd2cSJim Jagielski my $param = shift(@ARGV); 74*b1cdbd2cSJim Jagielski 75*b1cdbd2cSJim Jagielski if ($param eq "-o") { $par2script::globals::scriptname = shift(@ARGV); } 76*b1cdbd2cSJim Jagielski elsif ($param eq "-v") { $par2script::globals::logging = 1; } 77*b1cdbd2cSJim Jagielski elsif ($param =~ /\@\@/) { $par2script::globals::parfilelistorig = $param; } 78*b1cdbd2cSJim Jagielski elsif ($param eq "-i") { $par2script::globals::includepathlist = shift(@ARGV); } 79*b1cdbd2cSJim Jagielski elsif (($param =~ /\//) || ($param =~ /\\/)) # another include parameter! 80*b1cdbd2cSJim Jagielski { 81*b1cdbd2cSJim Jagielski $par2script::globals::includepathlist = $par2script::globals::includepathlist . "," . $param; 82*b1cdbd2cSJim Jagielski } 83*b1cdbd2cSJim Jagielski else 84*b1cdbd2cSJim Jagielski { 85*b1cdbd2cSJim Jagielski print("\n*************************************\n"); 86*b1cdbd2cSJim Jagielski print("Sorry, unknown parameter: $param"); 87*b1cdbd2cSJim Jagielski print("\n*************************************\n"); 88*b1cdbd2cSJim Jagielski usage(); 89*b1cdbd2cSJim Jagielski exit(-1); 90*b1cdbd2cSJim Jagielski } 91*b1cdbd2cSJim Jagielski } 92*b1cdbd2cSJim Jagielski} 93*b1cdbd2cSJim Jagielski 94*b1cdbd2cSJim Jagielski############################################ 95*b1cdbd2cSJim Jagielski# Controlling the fundamental parameter 96*b1cdbd2cSJim Jagielski# (required for every process) 97*b1cdbd2cSJim Jagielski############################################ 98*b1cdbd2cSJim Jagielski 99*b1cdbd2cSJim Jagielskisub control_parameter 100*b1cdbd2cSJim Jagielski{ 101*b1cdbd2cSJim Jagielski if ($par2script::globals::includepathlist eq "") 102*b1cdbd2cSJim Jagielski { 103*b1cdbd2cSJim Jagielski print "\n************************************************\n"; 104*b1cdbd2cSJim Jagielski print "Error: Include pathes not set not set (-i)!"; 105*b1cdbd2cSJim Jagielski print "\n************************************************\n"; 106*b1cdbd2cSJim Jagielski usage(); 107*b1cdbd2cSJim Jagielski exit(-1); 108*b1cdbd2cSJim Jagielski } 109*b1cdbd2cSJim Jagielski 110*b1cdbd2cSJim Jagielski if ($par2script::globals::scriptname eq "") 111*b1cdbd2cSJim Jagielski { 112*b1cdbd2cSJim Jagielski print "\n************************************************\n"; 113*b1cdbd2cSJim Jagielski print "Error: Name of the setup script not set (-o)!"; 114*b1cdbd2cSJim Jagielski print "\n************************************************\n"; 115*b1cdbd2cSJim Jagielski usage(); 116*b1cdbd2cSJim Jagielski exit(-1); 117*b1cdbd2cSJim Jagielski } 118*b1cdbd2cSJim Jagielski 119*b1cdbd2cSJim Jagielski if ($par2script::globals::parfilelistorig eq "") 120*b1cdbd2cSJim Jagielski { 121*b1cdbd2cSJim Jagielski print "\n************************************************\n"; 122*b1cdbd2cSJim Jagielski print "Error: List of par files not set!"; 123*b1cdbd2cSJim Jagielski print "\n************************************************\n"; 124*b1cdbd2cSJim Jagielski usage(); 125*b1cdbd2cSJim Jagielski exit(-1); 126*b1cdbd2cSJim Jagielski } 127*b1cdbd2cSJim Jagielski 128*b1cdbd2cSJim Jagielski # The par file list has to exist 129*b1cdbd2cSJim Jagielski 130*b1cdbd2cSJim Jagielski $par2script::globals::parfilelist = $par2script::globals::parfilelistorig; 131*b1cdbd2cSJim Jagielski $par2script::globals::parfilelist =~ s/\@\@//; 132*b1cdbd2cSJim Jagielski par2script::files::check_file($par2script::globals::parfilelist); 133*b1cdbd2cSJim Jagielski} 134*b1cdbd2cSJim Jagielski 135*b1cdbd2cSJim Jagielski##################################### 136*b1cdbd2cSJim Jagielski# Writing parameter to shell 137*b1cdbd2cSJim Jagielski##################################### 138*b1cdbd2cSJim Jagielski 139*b1cdbd2cSJim Jagielskisub outputparameter 140*b1cdbd2cSJim Jagielski{ 141*b1cdbd2cSJim Jagielski my $outputline = "\n$par2script::globals::prog -i $par2script::globals::includepathlist $par2script::globals::parfilelistorig -o $par2script::globals::scriptname"; 142*b1cdbd2cSJim Jagielski 143*b1cdbd2cSJim Jagielski if ($par2script::globals::logging) { $outputline .= " -v"; } 144*b1cdbd2cSJim Jagielski 145*b1cdbd2cSJim Jagielski $outputline .= "\n"; 146*b1cdbd2cSJim Jagielski 147*b1cdbd2cSJim Jagielski print $outputline; 148*b1cdbd2cSJim Jagielski} 149*b1cdbd2cSJim Jagielski 150*b1cdbd2cSJim Jagielski1; 151