xref: /trunk/main/solenv/bin/leconvert.pl (revision cdf0e10c)
1*cdf0e10cSrcweir:
2*cdf0e10cSrcweireval 'exec perl -wS $0 ${1+"$@"}'
3*cdf0e10cSrcweir    if 0;
4*cdf0e10cSrcweir#*************************************************************************
5*cdf0e10cSrcweir#
6*cdf0e10cSrcweir# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7*cdf0e10cSrcweir#
8*cdf0e10cSrcweir# Copyright 2000, 2010 Oracle and/or its affiliates.
9*cdf0e10cSrcweir#
10*cdf0e10cSrcweir# OpenOffice.org - a multi-platform office productivity suite
11*cdf0e10cSrcweir#
12*cdf0e10cSrcweir# This file is part of OpenOffice.org.
13*cdf0e10cSrcweir#
14*cdf0e10cSrcweir# OpenOffice.org is free software: you can redistribute it and/or modify
15*cdf0e10cSrcweir# it under the terms of the GNU Lesser General Public License version 3
16*cdf0e10cSrcweir# only, as published by the Free Software Foundation.
17*cdf0e10cSrcweir#
18*cdf0e10cSrcweir# OpenOffice.org is distributed in the hope that it will be useful,
19*cdf0e10cSrcweir# but WITHOUT ANY WARRANTY; without even the implied warranty of
20*cdf0e10cSrcweir# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21*cdf0e10cSrcweir# GNU Lesser General Public License version 3 for more details
22*cdf0e10cSrcweir# (a copy is included in the LICENSE file that accompanied this code).
23*cdf0e10cSrcweir#
24*cdf0e10cSrcweir# You should have received a copy of the GNU Lesser General Public License
25*cdf0e10cSrcweir# version 3 along with OpenOffice.org.  If not, see
26*cdf0e10cSrcweir# <http://www.openoffice.org/license.html>
27*cdf0e10cSrcweir# for a copy of the LGPLv3 License.
28*cdf0e10cSrcweir#
29*cdf0e10cSrcweir#*************************************************************************
30*cdf0e10cSrcweirmy $target_format = "";
31*cdf0e10cSrcweirmy @filelist;
32*cdf0e10cSrcweir#my $debug=1;
33*cdf0e10cSrcweirmy $debug=0;
34*cdf0e10cSrcweir
35*cdf0e10cSrcweirparameter_parse(@ARGV);
36*cdf0e10cSrcweirprint "@filelist\n" if ( $debug );
37*cdf0e10cSrcweirforeach my $onefile ( @filelist ) {
38*cdf0e10cSrcweir    convert_file( $onefile );
39*cdf0e10cSrcweir}
40*cdf0e10cSrcweir
41*cdf0e10cSrcweir
42*cdf0e10cSrcweirsub convert_file
43*cdf0e10cSrcweir{
44*cdf0e10cSrcweir    my $filename = shift;
45*cdf0e10cSrcweir    if ( $target_format eq "dos" ) {
46*cdf0e10cSrcweir        $lineend = "\r\n";
47*cdf0e10cSrcweir    } else {
48*cdf0e10cSrcweir        $lineend = "\n";
49*cdf0e10cSrcweir    }
50*cdf0e10cSrcweir    open INFILE, "$filename"or die "ERROR: Couldn\'t open $filename for reading.\n";
51*cdf0e10cSrcweir    my @lines = <INFILE>;
52*cdf0e10cSrcweir    close INFILE;
53*cdf0e10cSrcweir
54*cdf0e10cSrcweir    foreach my $oneline ( @lines ) {
55*cdf0e10cSrcweir        $oneline =~ s/\r*\n*$/$lineend/;
56*cdf0e10cSrcweir    }
57*cdf0e10cSrcweir
58*cdf0e10cSrcweir    open OUTFILE, ">$filename" or die "ERROR: Couldn\'t open $filename for writing.\n";
59*cdf0e10cSrcweir    syswrite OUTFILE, join "", @lines;
60*cdf0e10cSrcweir    close OUTFILE;
61*cdf0e10cSrcweir
62*cdf0e10cSrcweir}
63*cdf0e10cSrcweir
64*cdf0e10cSrcweirsub parameter_parse
65*cdf0e10cSrcweir{
66*cdf0e10cSrcweir    if ( $target_format eq "" ) {
67*cdf0e10cSrcweir        $target_format = shift ;
68*cdf0e10cSrcweir        usage() if ( $target_format ne "unix" && $target_format ne "dos" );
69*cdf0e10cSrcweir        usage() if ( $#_ == -1 );
70*cdf0e10cSrcweir    }
71*cdf0e10cSrcweir    foreach my $param ( @_ ) {
72*cdf0e10cSrcweir        if ( $param =~ "^@" ) {
73*cdf0e10cSrcweir            my $filename = $param;
74*cdf0e10cSrcweir            $filename =~ s/^@//;
75*cdf0e10cSrcweir            open CMDFILE, "$filename" or die "ERROR: Couldn\'t open $filename for reading.\n";
76*cdf0e10cSrcweir            my @filelist = <CMDFILE>;
77*cdf0e10cSrcweir            close CMDFILE;
78*cdf0e10cSrcweir            parameter_parse( @filelist );
79*cdf0e10cSrcweir        } else {
80*cdf0e10cSrcweir            push @filelist, $param;
81*cdf0e10cSrcweir        }
82*cdf0e10cSrcweir    }
83*cdf0e10cSrcweir}
84*cdf0e10cSrcweir
85*cdf0e10cSrcweirsub usage
86*cdf0e10cSrcweir{
87*cdf0e10cSrcweir    print "Convert text files to the desired lineend convention:\n";
88*cdf0e10cSrcweir    print "$0 <unix|dos> <FILE|\@filelist> [more files/lists]\n";
89*cdf0e10cSrcweir    exit 1;
90*cdf0e10cSrcweir}
91*cdf0e10cSrcweir
92