xref: /AOO41X/main/solenv/bin/modules/par2script/parameter.pm (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1*cdf0e10cSrcweir#*************************************************************************
2*cdf0e10cSrcweir#
3*cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*cdf0e10cSrcweir#
5*cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates.
6*cdf0e10cSrcweir#
7*cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite
8*cdf0e10cSrcweir#
9*cdf0e10cSrcweir# This file is part of OpenOffice.org.
10*cdf0e10cSrcweir#
11*cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify
12*cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3
13*cdf0e10cSrcweir# only, as published by the Free Software Foundation.
14*cdf0e10cSrcweir#
15*cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful,
16*cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of
17*cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18*cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details
19*cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code).
20*cdf0e10cSrcweir#
21*cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License
22*cdf0e10cSrcweir# version 3 along with OpenOffice.org.  If not, see
23*cdf0e10cSrcweir# <http://www.openoffice.org/license.html>
24*cdf0e10cSrcweir# for a copy of the LGPLv3 License.
25*cdf0e10cSrcweir#
26*cdf0e10cSrcweir#*************************************************************************
27*cdf0e10cSrcweir
28*cdf0e10cSrcweir
29*cdf0e10cSrcweirpackage par2script::parameter;
30*cdf0e10cSrcweir
31*cdf0e10cSrcweiruse Cwd;
32*cdf0e10cSrcweiruse par2script::files;
33*cdf0e10cSrcweiruse par2script::globals;
34*cdf0e10cSrcweiruse par2script::systemactions;
35*cdf0e10cSrcweir
36*cdf0e10cSrcweir############################################
37*cdf0e10cSrcweir# Parameter Operations
38*cdf0e10cSrcweir############################################
39*cdf0e10cSrcweir
40*cdf0e10cSrcweir###############################################################################
41*cdf0e10cSrcweir# Usage:
42*cdf0e10cSrcweir# perl par2script.pl -i ..\wntmsci8.pro\par,o:\SRX645\wntmsci8.pro\par.m24
43*cdf0e10cSrcweir# 					@@C:\DOCUMEN~1\is\LOCALS~1\Temp\mk6pd
44*cdf0e10cSrcweir# 					-o ..\wntmsci8.pro\bin\osl\setup_osl.inf
45*cdf0e10cSrcweir###############################################################################
46*cdf0e10cSrcweir
47*cdf0e10cSrcweirsub usage
48*cdf0e10cSrcweir{
49*cdf0e10cSrcweir	print <<Ende;
50*cdf0e10cSrcweir
51*cdf0e10cSrcweir--------------------------------------------------------------
52*cdf0e10cSrcweir$par2script::globals::prog
53*cdf0e10cSrcweirThe following parameter are needed:
54*cdf0e10cSrcweir-i: include pathes, comma separated list
55*cdf0e10cSrcweir-o: setup script file name
56*cdf0e10cSrcweir-v: writing logfile.txt (optional)
57*cdf0e10cSrcweir\@\@list: list of all par files
58*cdf0e10cSrcweir
59*cdf0e10cSrcweirExample:
60*cdf0e10cSrcweir perl par2script.pl -i ..\\wntmsci8\\par\,o\:\\SRX645\\wntmsci8\\par.m24
61*cdf0e10cSrcweir 		\@\@C\:\\DOCUMEN\~1\\is\\LOCALS\~1\\Temp\\mk6pd
62*cdf0e10cSrcweir 		-o ..\\wntmsci8.pro\\bin\\osl\\setup_osl.inf \[-v\]
63*cdf0e10cSrcweir
64*cdf0e10cSrcweir--------------------------------------------------------------
65*cdf0e10cSrcweirEnde
66*cdf0e10cSrcweir	exit(-1);
67*cdf0e10cSrcweir}
68*cdf0e10cSrcweir
69*cdf0e10cSrcweir#####################################
70*cdf0e10cSrcweir# Reading parameter
71*cdf0e10cSrcweir#####################################
72*cdf0e10cSrcweir
73*cdf0e10cSrcweirsub getparameter
74*cdf0e10cSrcweir{
75*cdf0e10cSrcweir	while ( $#ARGV >= 0 )
76*cdf0e10cSrcweir	{
77*cdf0e10cSrcweir		my $param = shift(@ARGV);
78*cdf0e10cSrcweir
79*cdf0e10cSrcweir		if ($param eq "-o") { $par2script::globals::scriptname = shift(@ARGV); }
80*cdf0e10cSrcweir		elsif ($param eq "-v") { $par2script::globals::logging = 1; }
81*cdf0e10cSrcweir		elsif ($param =~ /\@\@/) { $par2script::globals::parfilelistorig = $param; }
82*cdf0e10cSrcweir		elsif ($param eq "-i") { $par2script::globals::includepathlist = shift(@ARGV); }
83*cdf0e10cSrcweir		elsif (($param =~ /\//) || ($param =~ /\\/))	# another include parameter!
84*cdf0e10cSrcweir		{
85*cdf0e10cSrcweir			$par2script::globals::includepathlist = $par2script::globals::includepathlist . "," . $param;
86*cdf0e10cSrcweir		}
87*cdf0e10cSrcweir		else
88*cdf0e10cSrcweir		{
89*cdf0e10cSrcweir			print("\n*************************************\n");
90*cdf0e10cSrcweir			print("Sorry, unknown parameter: $param");
91*cdf0e10cSrcweir			print("\n*************************************\n");
92*cdf0e10cSrcweir			usage();
93*cdf0e10cSrcweir			exit(-1);
94*cdf0e10cSrcweir		}
95*cdf0e10cSrcweir	}
96*cdf0e10cSrcweir}
97*cdf0e10cSrcweir
98*cdf0e10cSrcweir############################################
99*cdf0e10cSrcweir# Controlling  the fundamental parameter
100*cdf0e10cSrcweir# (required for every process)
101*cdf0e10cSrcweir############################################
102*cdf0e10cSrcweir
103*cdf0e10cSrcweirsub control_parameter
104*cdf0e10cSrcweir{
105*cdf0e10cSrcweir	if ($par2script::globals::includepathlist eq "")
106*cdf0e10cSrcweir	{
107*cdf0e10cSrcweir		print "\n************************************************\n";
108*cdf0e10cSrcweir		print "Error: Include pathes not set not set (-i)!";
109*cdf0e10cSrcweir		print "\n************************************************\n";
110*cdf0e10cSrcweir		usage();
111*cdf0e10cSrcweir		exit(-1);
112*cdf0e10cSrcweir	}
113*cdf0e10cSrcweir
114*cdf0e10cSrcweir	if ($par2script::globals::scriptname eq "")
115*cdf0e10cSrcweir	{
116*cdf0e10cSrcweir		print "\n************************************************\n";
117*cdf0e10cSrcweir		print "Error: Name of the setup script not set (-o)!";
118*cdf0e10cSrcweir		print "\n************************************************\n";
119*cdf0e10cSrcweir		usage();
120*cdf0e10cSrcweir		exit(-1);
121*cdf0e10cSrcweir	}
122*cdf0e10cSrcweir
123*cdf0e10cSrcweir	if ($par2script::globals::parfilelistorig eq "")
124*cdf0e10cSrcweir	{
125*cdf0e10cSrcweir		print "\n************************************************\n";
126*cdf0e10cSrcweir		print "Error: List of par files not set!";
127*cdf0e10cSrcweir		print "\n************************************************\n";
128*cdf0e10cSrcweir		usage();
129*cdf0e10cSrcweir		exit(-1);
130*cdf0e10cSrcweir	}
131*cdf0e10cSrcweir
132*cdf0e10cSrcweir	# The par file list has to exist
133*cdf0e10cSrcweir
134*cdf0e10cSrcweir	$par2script::globals::parfilelist = $par2script::globals::parfilelistorig;
135*cdf0e10cSrcweir	$par2script::globals::parfilelist =~ s/\@\@//;
136*cdf0e10cSrcweir	par2script::files::check_file($par2script::globals::parfilelist);
137*cdf0e10cSrcweir}
138*cdf0e10cSrcweir
139*cdf0e10cSrcweir#####################################
140*cdf0e10cSrcweir# Writing parameter to shell
141*cdf0e10cSrcweir#####################################
142*cdf0e10cSrcweir
143*cdf0e10cSrcweirsub outputparameter
144*cdf0e10cSrcweir{
145*cdf0e10cSrcweir	my $outputline = "\n$par2script::globals::prog -i $par2script::globals::includepathlist $par2script::globals::parfilelistorig -o $par2script::globals::scriptname";
146*cdf0e10cSrcweir
147*cdf0e10cSrcweir	if ($par2script::globals::logging) { $outputline .= " -v"; }
148*cdf0e10cSrcweir
149*cdf0e10cSrcweir	$outputline .= "\n";
150*cdf0e10cSrcweir
151*cdf0e10cSrcweir	print $outputline;
152*cdf0e10cSrcweir}
153*cdf0e10cSrcweir
154*cdf0e10cSrcweir1;
155