author | Shabe Razvi <shaber@symbian.org> |
Wed, 02 Sep 2009 13:31:21 +0100 | |
changeset 389 | ea20e8722576 |
parent 108 | d33d43677cdf |
permissions | -rw-r--r-- |
#!perl -w # 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: # Recursive listing of a directory, outputting lower-cased relative paths with unix dir separators use strict; my $dir = shift or die "Usage: $0 <dir> \n"; # provided dir to traverse my $filelist = []; my $init = $dir = lc($dir); $init =~ s{\\}{\\\\}; # fwd declaration to prevent warning sub recursedir($$); # run recurse and print recursedir ($dir, $filelist); print $_, "\n" for(@$filelist); sub recursedir($$) { my $dir = shift @_; my $list = shift @_; if(opendir(DIR, "$dir")) { # list dir for my $file(grep { !/^\./ } readdir DIR) { if(-d "$dir/$file") { # traverse subdirs recursedir("$dir/$file", $list); } elsif(-f "$dir/$file") { my $formatted = lc($dir)."/".lc($file); $formatted =~ s!$init/!!; push @$list, $formatted; } } closedir DIR; } else { warn "Cannot open the directory '$dir' $!\n"; } }