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