xref: /trunk/main/solenv/bin/modules/pre2par/parameter.pm (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1#*************************************************************************
2#
3# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4#
5# Copyright 2000, 2010 Oracle and/or its affiliates.
6#
7# OpenOffice.org - a multi-platform office productivity suite
8#
9# This file is part of OpenOffice.org.
10#
11# OpenOffice.org is free software: you can redistribute it and/or modify
12# it under the terms of the GNU Lesser General Public License version 3
13# only, as published by the Free Software Foundation.
14#
15# OpenOffice.org is distributed in the hope that it will be useful,
16# but WITHOUT ANY WARRANTY; without even the implied warranty of
17# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18# GNU Lesser General Public License version 3 for more details
19# (a copy is included in the LICENSE file that accompanied this code).
20#
21# You should have received a copy of the GNU Lesser General Public License
22# version 3 along with OpenOffice.org.  If not, see
23# <http://www.openoffice.org/license.html>
24# for a copy of the LGPLv3 License.
25#
26#*************************************************************************
27
28
29package pre2par::parameter;
30
31use Cwd;
32use pre2par::files;
33use pre2par::globals;
34use pre2par::systemactions;
35
36############################################
37# Parameter Operations
38############################################
39
40sub usage
41{
42    print <<Ende;
43---------------------------------------------------------
44$pre2par::globals::prog
45The following parameter are needed:
46-s: path to the pre file
47-o: path to the par file
48-l: path to the ulf file (mlf or jlf file)
49-v: log  process (optional)
50
51Example:
52
53perl pre2par.pl -l test.mlf -s readme.pre -o readme.par -v
54
55---------------------------------------------------------
56Ende
57    exit(-1);
58}
59
60#####################################
61# Reading parameter
62#####################################
63
64sub getparameter
65{
66    while ( $#ARGV >= 0 )
67    {
68        my $param = shift(@ARGV);
69
70        if ($param eq "-s") { $pre2par::globals::prefilename = shift(@ARGV); }
71        elsif ($param eq "-o") { $pre2par::globals::parfilename = shift(@ARGV); }
72        elsif ($param eq "-l") { $pre2par::globals::langfilename = shift(@ARGV); }
73        elsif ($param eq "-v") { $pre2par::globals::logging = 1; }
74        else
75        {
76            print("\n*************************************\n");
77            print("Sorry, unknown parameter: $param");
78            print("\n*************************************\n");
79            usage();
80            exit(-1);
81        }
82    }
83}
84
85############################################
86# Controlling  the fundamental parameter
87# (required for every process)
88############################################
89
90sub control_parameter
91{
92    if ($pre2par::globals::prefilename eq "")
93    {
94        print "\n************************************************\n";
95        print "Error: Name of the input file not set (-s)!";
96        print "\n************************************************\n";
97        usage();
98        exit(-1);
99    }
100
101    if ($pre2par::globals::parfilename eq "")
102    {
103        print "\n************************************************\n";
104        print "Error: Name of the output file not set (-o)!";
105        print "\n************************************************\n";
106        usage();
107        exit(-1);
108    }
109
110    if (!($pre2par::globals::prefilename =~ /\.pre\s*$/))
111    {
112        print "\n************************************************\n";
113        print "Error: Input file is no .pre file!";
114        print "\n************************************************\n";
115        usage();
116        exit(-1);
117    }
118
119    if (!($pre2par::globals::parfilename =~ /\.par\s*$/))
120    {
121        print "\n************************************************\n";
122        print "Error: Output file is no .par file!";
123        print "\n************************************************\n";
124        usage();
125        exit(-1);
126    }
127
128    # The input file has to exist
129
130    pre2par::files::check_file($pre2par::globals::prefilename);
131}
132
133##########################################################
134# The path parameters can be relative or absolute.
135# This function creates absolute pathes.
136##########################################################
137
138sub make_path_absolute
139{
140    my ($pathref) = @_;
141
142    if ( $pre2par::globals::isunix )
143    {
144        if (!($$pathref =~ /^\s*\//))   # this is a relative unix path
145        {
146            $$pathref = cwd() . $pre2par::globals::separator . $$pathref;
147        }
148    }
149
150    if ( $pre2par::globals::iswin )
151    {
152        if (!($$pathref =~ /^\s*\w\:/)) # this is a relative windows path
153        {
154            $$pathref = cwd() . $pre2par::globals::separator . $$pathref;
155            $$pathref =~ s/\//\\/g;
156        }
157    }
158
159    $$pathref =~ s/\Q$pre2par::globals::separator\E\s*$//;  # removing ending slashes
160}
161
162#####################################
163# Writing parameter to shell
164#####################################
165
166sub outputparameter
167{
168    $pre2par::globals::logging ? ($logoption = " -v") : ($logoption = "");
169    print "\n$pre2par::globals::prog -l $pre2par::globals::langfilename -s $pre2par::globals::prefilename -o $pre2par::globals::parfilename$logoption\n";
170
171#   print "\n********************************************************\n";
172#   print "This is $pre2par::globals::prog, version 1.0\n";
173#   print "Input file: $pre2par::globals::prefilename\n";
174#   print "Output file: $pre2par::globals::parfilename\n";
175#   print "********************************************************\n";
176}
177
1781;
179