You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
83 lines
1.9 KiB
83 lines
1.9 KiB
#!/usr/bin/perl -w |
|
# |
|
# Description: Generate tag lookup for ExifTool writer |
|
# |
|
# Syntax: build_tag_lookup [-p] [-v] |
|
# |
|
# Options: -p - preserve existing revision date in html files |
|
# -v - verbose mode |
|
# |
|
# Created: 12/31/04 - P. Harvey |
|
# |
|
use strict; |
|
|
|
print "Building tag lookup...\n"; |
|
|
|
my $file = 'lib/Image/ExifTool/TagLookup.pm'; |
|
my $podFile = 'lib/Image/ExifTool/TagNames.pod'; |
|
my $htmldir = 'html'; |
|
my $verbose; |
|
|
|
BEGIN { |
|
# get exe directory (and change to forward slashes) |
|
my $exeDir = ($0 =~ /(.*)[\\\/]/) ? $1 : '.'; |
|
# add lib directory at start of include path |
|
unshift @INC, "$exeDir/lib"; |
|
} |
|
|
|
require Image::ExifTool::BuildTagLookup; |
|
|
|
my $builder = new Image::ExifTool::BuildTagLookup; |
|
|
|
foreach (@ARGV) { |
|
if ($_ eq '-p') { |
|
$$builder{PRESERVE_DATE} = 1; |
|
print("(preserving revision dates)\n"); |
|
next; |
|
} elsif ($_ eq '-v') { |
|
$verbose = 1; |
|
} else { |
|
die "Unknown option '$_'\n"; |
|
} |
|
} |
|
|
|
my $count = $builder->{COUNT}; |
|
foreach (sort keys %$count) { |
|
printf "%5d %s\n", $$count{$_}, $_; |
|
} |
|
|
|
if ($verbose) { |
|
printf "%5d writable pseudo tags:", scalar(@{$$builder{WRITE_PSEUDO}}); |
|
my $len = 999; |
|
foreach (sort @{$$builder{WRITE_PSEUDO}}) { |
|
$len + length() > 78 and print("\n "), $len = 5; |
|
print ' ', $_; |
|
$len += length() + 1; |
|
} |
|
print "\n"; |
|
} |
|
|
|
if ($builder->WriteTagLookup($file)) { |
|
print "Tag lookup built OK\n"; |
|
} else { |
|
die "Error building tag lookup\n"; |
|
} |
|
|
|
if ($builder->WriteTagNames($podFile, $htmldir)) { |
|
print "TagNames written OK\n"; |
|
} else { |
|
die "Error writing TagNames\n"; |
|
} |
|
|
|
# check to see if too many files changed |
|
my $diff = $$count{'HTML files changed'}; |
|
my $same = $$count{'HTML files unchanged'}; |
|
if ($diff > $same) { |
|
warn "WARNING: $diff HTML files changed!!!! <<<<<<<<<<<<<<<<<<<\n"; |
|
} else { |
|
printf "%5d HTML files changed\n", $diff; |
|
} |
|
|
|
exit(0); |
|
|
|
# end
|
|
|