williamr/convert_to_eula.pl
author William Roberts <williamr@symbian.org>
Fri, 27 Aug 2010 15:27:06 +0100
changeset 281 c62bd4f9dbce
parent 114 5bbdda50c091
permissions -rw-r--r--
Add delete_builds.pl - a utility for making space quickly on build machines This Perl script deletes some directories known to contain very large files first, before deleting the rest of the build which contains millions of small files. Given multiple builds, it will do this breadth first, so that lost of space is released quickly.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     1
#!/usr/bin/perl
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     2
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     3
# Copyright (c) 2009 Symbian Foundation Ltd
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     4
# This component and the accompanying materials are made available
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     6
# which accompanies this distribution, and is available
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     8
#
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
     9
# Initial Contributors:
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    10
# Symbian Foundation Ltd - initial contribution.
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    11
# 
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    12
# Contributors:
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    13
#
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    14
# Description:
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    15
# Map the SFL license to the EULA license, keeping a copy of the original file
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    16
# in a parallel tree for creation of a "repair" kit to reinstate the SFL
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    17
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    18
use strict;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    19
use File::Copy;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    20
use File::Path;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    21
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    22
my $debug = 0;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    23
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    24
my @oldtext = (
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    25
  'terms of the License "Symbian Foundation License v1.0"',
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    26
  'the URL "http://www.symbianfoundation.org/legal/sfl-v10.html"'
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    27
);
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    28
my @newtext = (
61
7cd69ef87d2a Clarify what sort of "members" are using the SFL
William Roberts <williamr@symbian.org>
parents: 59
diff changeset
    29
  'terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members',
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    30
  'the URL "http://www.symbianfoundation.org/legal/licencesv10.html"'
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    31
);
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    32
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    33
my @errorfiles = ();
73
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    34
my @multinoticefiles = ();
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    35
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    36
sub map_eula($$$)
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    37
  {
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    38
  my ($file,$shadowdir,$name) = @_;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    39
  
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    40
  open FILE, "<$file" or print "ERROR: Cannot open $file: $!\n" and return "Cannot open";
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    41
  my @lines = <FILE>;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    42
  close FILE;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    43
  
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    44
  my $updated = 0;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    45
  my @newlines = ();
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    46
  while (my $line = shift @lines)
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    47
    { 
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    48
    # under the terms of the License "Symbian Foundation License v1.0"
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    49
    # which accompanies this distribution, and is available
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    50
    # at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    51
    my $pos1 = index $line, $oldtext[0];
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    52
    if ($pos1 >= 0)
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    53
      {
73
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    54
      # be careful - oldtext is a prefix of newtext!
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    55
      if (index($line, $newtext[0]) >= 0)
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    56
        {
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    57
        # line already converted - nothing to do
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    58
        push @newlines, $line;
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    59
        next;
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    60
        }
87
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    61
	  my @midlines = ();
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    62
      my $nextline;
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    63
	  my $midlinecount = 1;
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    64
	  while ($nextline = shift @lines)
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    65
		{
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    66
		if ($nextline !~ /^\s$/)
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    67
		  {
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    68
		  # non-blank line
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    69
		  last if ($midlinecount == 0);
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    70
		  $midlinecount -= 1;
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    71
		  # keep going
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    72
		  }
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    73
		push @midlines, $nextline;
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    74
		}
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    75
      my $urlline = $nextline;
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    76
      my $pos2 = index $urlline, $oldtext[1];
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    77
      if ($pos2 >= 0)
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    78
        {
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    79
        # Found it - assume that there's only one instance
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    80
        substr $line, $pos1, length($oldtext[0]), $newtext[0];
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
    81
        substr $urlline, $pos2, length($oldtext[1]), $newtext[1];
87
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    82
        push @newlines, $line, @midlines, $urlline;
73
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    83
        $updated += 1;
70
59ba21437bf0 Modified convert_to_eula.pl to parse multiple instances of the SFL licence.
Chetan Kapoor <chetank@symbian.org>
parents: 61
diff changeset
    84
        next;
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    85
        }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    86
      else
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    87
        {
73
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    88
        if(!$updated)
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    89
          {
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    90
          my $lineno = 1 + (scalar @newlines);
87
d22c49c5048f Fixed "white-spaces" in licence text issue in convert_to_eula.pl
Chetan Kapoor <chetank@symbian.org>
parents: 73
diff changeset
    91
          print STDERR "Problem in $file at $lineno: incorrectly formatted >\n$line", join("",@midlines), "$urlline\n";
73
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    92
          push @errorfiles, $file;
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
    93
          }	
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    94
        last;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    95
        }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    96
      }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    97
    push @newlines, $line;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    98
    }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
    99
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   100
  return if (!$updated);
73
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   101
  
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   102
  if ($updated > 1)
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   103
    {
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   104
    push @multinoticefiles, $file;
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   105
    print "! found $updated SFL notices in $file\n";
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   106
    }
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   107
 
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   108
  mkpath($shadowdir, {verbose=>0});
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   109
  move($file, "$shadowdir/$name") or die("Cannot move $file to $shadowdir/$name: $!\n");
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   110
  open NEWFILE, ">$file" or die("Cannot overwrite $file: $!\n");
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
   111
  print NEWFILE @newlines, @lines;
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   112
  close NEWFILE or die("Failed to update $file: $!\n");
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   113
  print "* updated $file\n";
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   114
  }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   115
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   116
# Process tree
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   117
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   118
sub scan_directory($$)
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   119
  {
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   120
  my ($path, $shadow) = @_;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   121
  
114
5bbdda50c091 Speed up execution, by skipping over the /epoc32/build directory (which isn't released so doesn't need to be processed).
Simon Howkins <simonh@symbian.org>
parents: 87
diff changeset
   122
  return if lc $path eq "/epoc32/build";
5bbdda50c091 Speed up execution, by skipping over the /epoc32/build directory (which isn't released so doesn't need to be processed).
Simon Howkins <simonh@symbian.org>
parents: 87
diff changeset
   123
58
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   124
  opendir DIR, $path;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   125
  my @files = grep !/^\.\.?$/, readdir DIR;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   126
  closedir DIR;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   127
  
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   128
  foreach my $file (@files)
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   129
    {
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   130
    my $newpath = "$path/$file";
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   131
    my $newshadow = "$shadow/$file";
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   132
    
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   133
    if (-d $newpath)
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   134
      {
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   135
      scan_directory($newpath, $newshadow);
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   136
      next;
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   137
      }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   138
    next if (-B $newpath);  # ignore binary files
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   139
    
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   140
    map_eula($newpath, $shadow, $file);
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   141
    }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   142
  }
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   143
69e9b8ca3ae9 Simple utility to change perfectly-formed SFL copyright notices to something else
William Roberts <williamr@symbian.org>
parents:
diff changeset
   144
scan_directory("/epoc32", "/sfl_epoc32");
59
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
   145
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
   146
printf "%d problem files\n", scalar @errorfiles;
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
   147
print "\t", join("\n\t", @errorfiles), "\n";
e86c659b78a0 Fix Bug 387 - full newline processing as per "perlport" guidance
William Roberts <williamr@symbian.org>
parents: 58
diff changeset
   148
73
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   149
printf "%d files with multiple notices\n", scalar @multinoticefiles;
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   150
print "\t", join("\n\t", @multinoticefiles), "\n";
df789c4e291d Move the "already converted notice" line check to a more efficient place, report files with multiple notices, repair formatting.
William Roberts <williamr@symbian.org>
parents: 70
diff changeset
   151