--- a/williamr/convert_to_epl.pl Fri Feb 05 14:53:29 2010 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,163 +0,0 @@
-#!/usr/bin/perl
-
-# Copyright (c) 2009 Symbian Foundation Ltd
-# This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Symbian Foundation Ltd - initial contribution.
-#
-# Contributors:
-#
-# Description:
-# Map the SFL license to the EPL license, keeping a copy of the original file
-# in a parallel tree
-
-use strict;
-use File::Copy;
-use File::Path;
-
-if (scalar @ARGV != 2)
- {
- print <<'EOF';
-Incorrect number of arguments
-
-Usage: perl convert_to_epl.pl workdir savedir
-
-Recursively processes workdir to examine all of the text files and convert
-all perfectly formed instances of the SFL copyright notice into EPL notices.
-
-If a file is modified, the original is first copied to the corresponding place
-under savedir.
-
-It is safe to rerun this script if it stopped for any reason, as no converted
-SFL notice will ever match on the second run through.
-EOF
- exit 1;
- }
-
-my $work_root = $ARGV[0];
-my $saved_root = $ARGV[1];
-
-$work_root =~ s/\\/\//g; # convert to Unix separators please
-$saved_root =~ s/\\/\//g;
-
-print "* Processing $work_root, leaving the original of any modified file in $saved_root\n";
-
-my $debug = 0;
-
-my @oldtext = (
- 'terms of the License "Symbian Foundation License v1.0"',
- 'the URL "http://www.symbianfoundation.org/legal/sfl-v10.html"'
-);
-my @newtext = (
- 'terms of the License "Eclipse Public License v1.0"',
- 'the URL "http://www.eclipse.org/legal/epl-v10.html"'
-);
-
-my @errorfiles = ();
-my @multinoticefiles = ();
-
-sub map_epl($$$)
- {
- my ($file,$shadowdir,$name) = @_;
-
- open FILE, "<$file" or print "ERROR: Cannot open $file: $!\n" and return "Cannot open";
- my @lines = <FILE>;
- close FILE;
-
- my $updated = 0;
- my @newlines = ();
- while (my $line = shift @lines)
- {
- # under the terms of the License "Symbian Foundation License v1.0"
- # which accompanies this distribution, and is available
- # at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
- my $pos1 = index $line, $oldtext[0];
- if ($pos1 >= 0)
- {
- # be careful - oldtext is a prefix of newtext!
- if (index($line, $newtext[0]) >= 0)
- {
- # line already converted - nothing to do
- push @newlines, $line;
- next;
- }
- my $midline = shift @lines;
- my $urlline = shift @lines;
- my $pos2 = index $urlline, $oldtext[1];
- if ($pos2 >= 0)
- {
- # Found it - assume that there's only one instance
- substr $line, $pos1, length($oldtext[0]), $newtext[0];
- substr $urlline, $pos2, length($oldtext[1]), $newtext[1];
- push @newlines, $line, $midline, $urlline;
- $updated += 1;
- next;
- }
- else
- {
- if(!$updated)
- {
- my $lineno = 1 + (scalar @newlines);
- print STDERR "Problem in $file at $lineno: incorrectly formatted >\n$line$midline$urlline\n";
- push @errorfiles, $file;
- }
- last;
- }
- }
- push @newlines, $line;
- }
-
- return if (!$updated);
-
- if ($updated > 1)
- {
- push @multinoticefiles, $file;
- print "! found $updated SFL notices in $file\n";
- }
-
- mkpath($shadowdir, {verbose=>0});
- move($file, "$shadowdir/$name") or die("Cannot move $file to $shadowdir/$name: $!\n");
- open NEWFILE, ">$file" or die("Cannot overwrite $file: $!\n");
- print NEWFILE @newlines, @lines;
- close NEWFILE or die("Failed to update $file: $!\n");
- print "* updated $file\n";
- }
-
-# Process tree
-
-sub scan_directory($$)
- {
- my ($path, $shadow) = @_;
-
- opendir DIR, $path;
- my @files = grep !/^\.\.?$/, readdir DIR;
- closedir DIR;
-
- foreach my $file (@files)
- {
- my $newpath = "$path/$file";
- my $newshadow = "$shadow/$file";
-
- if (-d $newpath)
- {
- scan_directory($newpath, $newshadow);
- next;
- }
- next if (-B $newpath); # ignore binary files
-
- map_epl($newpath, $shadow, $file);
- }
- }
-
-scan_directory($work_root, $saved_root);
-
-printf "%d problem files\n", scalar @errorfiles;
-print "\t", join("\n\t", @errorfiles), "\n";
-
-printf "%d files with multiple notices\n", scalar @multinoticefiles;
-print "\t", join("\n\t", @multinoticefiles), "\n";
-