#************************************************************** # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # #************************************************************** package pre2par::parameter; use Cwd; use pre2par::files; use pre2par::globals; use pre2par::systemactions; ############################################ # Parameter Operations ############################################ sub usage { print <= 0 ) { my $param = shift(@ARGV); if ($param eq "-s") { $pre2par::globals::prefilename = shift(@ARGV); } elsif ($param eq "-o") { $pre2par::globals::parfilename = shift(@ARGV); } elsif ($param eq "-l") { $pre2par::globals::langfilename = shift(@ARGV); } elsif ($param eq "-v") { $pre2par::globals::logging = 1; } else { print("\n*************************************\n"); print("Sorry, unknown parameter: $param"); print("\n*************************************\n"); usage(); exit(-1); } } } ############################################ # Controlling the fundamental parameter # (required for every process) ############################################ sub control_parameter { if ($pre2par::globals::prefilename eq "") { print "\n************************************************\n"; print "Error: Name of the input file not set (-s)!"; print "\n************************************************\n"; usage(); exit(-1); } if ($pre2par::globals::parfilename eq "") { print "\n************************************************\n"; print "Error: Name of the output file not set (-o)!"; print "\n************************************************\n"; usage(); exit(-1); } if (!($pre2par::globals::prefilename =~ /\.pre\s*$/)) { print "\n************************************************\n"; print "Error: Input file is no .pre file!"; print "\n************************************************\n"; usage(); exit(-1); } if (!($pre2par::globals::parfilename =~ /\.par\s*$/)) { print "\n************************************************\n"; print "Error: Output file is no .par file!"; print "\n************************************************\n"; usage(); exit(-1); } # The input file has to exist pre2par::files::check_file($pre2par::globals::prefilename); } ########################################################## # The path parameters can be relative or absolute. # This function creates absolute pathes. ########################################################## sub make_path_absolute { my ($pathref) = @_; if ( $pre2par::globals::isunix ) { if (!($$pathref =~ /^\s*\//)) # this is a relative unix path { $$pathref = cwd() . $pre2par::globals::separator . $$pathref; } } if ( $pre2par::globals::iswin ) { if (!($$pathref =~ /^\s*\w\:/)) # this is a relative windows path { $$pathref = cwd() . $pre2par::globals::separator . $$pathref; $$pathref =~ s/\//\\/g; } } if ( $pre2par::globals::isos2 ) { if (!($$pathref =~ /^\s*\w\:/)) # this is a relative os2 path { $$pathref = cwd() . $pre2par::globals::separator . $$pathref; $$pathref =~ s/\\/\//g; } } $$pathref =~ s/\Q$pre2par::globals::separator\E\s*$//; # removing ending slashes } ##################################### # Writing parameter to shell ##################################### sub outputparameter { $pre2par::globals::logging ? ($logoption = " -v") : ($logoption = ""); print "\n$pre2par::globals::prog -l $pre2par::globals::langfilename -s $pre2par::globals::prefilename -o $pre2par::globals::parfilename$logoption\n"; # print "\n********************************************************\n"; # print "This is $pre2par::globals::prog, version 1.0\n"; # print "Input file: $pre2par::globals::prefilename\n"; # print "Output file: $pre2par::globals::parfilename\n"; # print "********************************************************\n"; } 1;