2 ###APPNAME: htmlconv_filecase
4 ###APPDATE: 2009-04-17 01:08:39
6 ###APPDESC: htmlconv_filecase
7 ###APPUSAGE: [-u] directory
8 ###APPEXAMPLE: htmlconv_filecase chm_directory
9 ###APPOPTION: -u:Convert to upper case
12 #ENV variable MUST be defined somewhere,
13 #FOR perl to search modules from,
15 use lib
$ENV{XR_PERL_MODULE_DIR
};
17 use MyPlace
::Script
::Usage qw
/help_required help_even_empty/;
18 #exit 0 if(help_required($0,@ARGV));
19 exit 0 if(help_even_empty
($0,@ARGV));
32 die("\"$_\" isn't a valid option,neither a directory\n");
35 push @FOLDERS,"." unless(@FOLDERS);
48 my $new = $UPPER ?
uc($old) : lc($old);
49 unless($new eq $old) {
50 print STDERR
"Converting $old -> $new ... ";
51 rename $old,$new or die("$!\n");
56 use File
::Spec
::Functions
;
59 my $dir = &do_case
(shift);
60 print STDERR
"dirtree(): processing \"$dir\"\n";
61 opendir DIR
,$dir or die("$!\n");
64 foreach(readdir(DIR
)) {
65 next if($_ eq '.' or $_ eq '..');
68 push @subdir,$_ if(-d
$_);
72 foreach(readdir(DIR
)) {
73 next if($_ eq '.' or $_ eq '..');
74 my $path = do_case
(catfile
($dir,$_));
76 push @subdir,$path if(-d
$path);
80 push @result,&dirtree
($_) foreach(@subdir);
84 my $FILE_EXP = '\.\w{1,8}';
85 my $EXP = qr/((?:=\s*[^'"\s\n\r]+$FILE_EXP[\s\>\<]|"[^"\n\r]+$FILE_EXP"|'[^'\n\r]+$FILE_EXP'))/i;
86 my $REPLACE = $UPPER ?
'\U$1\E' : '\L$1\E';
97 print STDERR
"Processing $_ ...\n";
98 my @tree = dirtree
($_);
100 print STDERR
"\tNothing to do\n";
103 # my @exp = build_exp(\@tree);
104 # use Data::Dumper;die(Dumper(\@tree));
105 # use Data::Dumper;die(Dumper(\@exp));
107 if(/\.(?:html?|css|js)$/ and -f
$_) {
108 print STDERR
"Processing $_ ...\n";
109 my $text = slurp
($_);
111 $UPPER ?
$newtext =~ s/$EXP/\U$1\E/go : $newtext =~ s/$EXP/\L$1\E/go;
112 unless($newtext eq $text) {
113 print STDERR
"Writing $_ ... ";
114 open FO
,">:raw",$_ or die("$!\n");