xref: /aoo4110/main/solenv/bin/converttags.pl (revision b1cdbd2c)
1#**************************************************************
2#
3#  Licensed to the Apache Software Foundation (ASF) under one
4#  or more contributor license agreements.  See the NOTICE file
5#  distributed with this work for additional information
6#  regarding copyright ownership.  The ASF licenses this file
7#  to you under the Apache License, Version 2.0 (the
8#  "License"); you may not use this file except in compliance
9#  with the License.  You may obtain a copy of the License at
10#
11#    http://www.apache.org/licenses/LICENSE-2.0
12#
13#  Unless required by applicable law or agreed to in writing,
14#  software distributed under the License is distributed on an
15#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16#  KIND, either express or implied.  See the License for the
17#  specific language governing permissions and limitations
18#  under the License.
19#
20#**************************************************************
21#
22# converttags - a perl script to coonvert some predefined tags
23# to user specified values
24#
25
26if($#ARGV == -1)
27{
28    die "No parameters were specified.\nperl converttags.pl <mode> <title> <productname> [<color1>] [<color2>] file_1 [... file_n]\n";
29}
30if($#ARGV < 2)
31{
32    die "No file were specified -> no file must be converted!\n";
33}
34
35# mode = 1 -> convert
36#      = 2 -> exit without conversion
37$mode = shift @ARGV;
38
39$title = shift @ARGV;
40$productname = shift @ARGV;
41
42$color1 = "";
43$color2 = "";
44
45if( $mode =~ s/2/$1/go )
46{
47    exit 0;
48}
49
50if( $ARGV[0] =~ s/(#[\w]{6})/$1/go )
51{
52    $color1 = shift @ARGV;
53}
54if( $ARGV[0] =~ s/(#[\w]{6})/$1/go )
55{
56    $color2 = shift @ARGV;
57}
58
59print "$title\n";
60print "$productname\n";
61print "$color1\n";
62print "$color2\n";
63
64$return = 0;
65
66while (@ARGV)
67{
68    my $lineCount = 0;
69    $ARGV = shift @ARGV;
70    print "convert tags: $ARGV ";
71
72    open ( FILEIN, $ARGV ) || die "could not open $ARGV for reading";
73    @lines = <FILEIN>;
74    close( FILEIN );
75    open( FILEOUT, ">$ARGV.tmp" ) || die "could not open $ARGV.tmp for writing";
76
77
78    foreach $_ (@lines)
79    {
80	$lineCount++;
81	if ( $lineCount == 10 )
82	{
83	    $lineCount = 0;
84	    print ".";
85	}
86	# change [TITLE] tag
87	s#\[TITLE\]#$title#go;
88
89	# change [PRODUCTNAME] tag
90	s#\[PRODUCTNAME\]#$productname#go;
91
92	# change color #003399 to #$color1 if color1 was specified!
93	if ( ! "$color1" eq "" )
94	{
95	    s/#003399/$color1/go;
96	}
97
98	# change color #99CCFF to #$color2 if color2 was specified!
99	if ( ! "$color2" eq "" )
100	{
101	    s/#99CCFF/$color2/go;
102	}
103	print FILEOUT $_;
104    }
105    print " OK\n";
106
107    close FILEOUT;
108    chmod 0666, $ARGV;
109    rename "$ARGV.tmp", $ARGV || die "could not rename $ARGV.tmp to $ARGV";
110}
111
112exit $return;
113