diff -r 18edc8e9ec9e -r 69e9b8ca3ae9 williamr/convert_to_eula.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/williamr/convert_to_eula.pl Tue Sep 22 17:01:01 2009 +0100 @@ -0,0 +1,97 @@ +#!/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 EULA license, keeping a copy of the original file +# in a parallel tree for creation of a "repair" kit to reinstate the SFL + +use strict; +use File::Copy; +use File::Path; + +my $debug = 0; + +sub map_eula($$$) + { + my ($file,$shadowdir,$name) = @_; + + open FILE, "<$file" or print "ERROR: Cannot open $file: $!\n" and return "Cannot open"; + my @lines = ; + 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". + if ($line =~ /terms of the License "Symbian Foundation License v1.0"/) + { + my $midline = shift @lines; + my $nextline = shift @lines; + if ($nextline =~ /the URL "http:\/\/www.symbianfoundation.org\/legal\/sfl-v10.html"/) + { + # Found it - assume that there's only one instance + $line =~ s/Symbian Foundation License v1.0/Symbian End User License v1.0/; + $nextline =~ s/legal\/sfl-v10.html/legal\/eula-v10.html/; + push @newlines, $line, $midline, $nextline, @lines; + $updated = 1; + last; + } + else + { + print STDERR "Problem in $file: incorrectly formatted >\n$line$nextline\n"; + last; + } + } + push @newlines, $line; + } + + return if (!$updated); + + 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; + 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_eula($newpath, $shadow, $file); + } + } + +scan_directory("/epoc32", "/sfl_epoc32");