diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | META.yml | 2 | ||||
-rw-r--r-- | README | 6 | ||||
-rw-r--r-- | TODO | 33 | ||||
-rwxr-xr-x | renrot | 55 | ||||
-rw-r--r-- | renrot.spec | 2 |
6 files changed, 58 insertions, 47 deletions
@@ -1,4 +1,10 @@ $Log$ +Revision 1.59 2006/05/06 07:32:14 andy +Minor changes of documentation. Removing trailing spaces. +Restructure TODO. +Add -q option for suppressing process messages. +Release 0.16.2. + Revision 1.58 2006/05/05 21:31:38 zeus TODO item added @@ -213,4 +219,3 @@ Id keyword is added to renrot file. Revision 1.1 2005/10/17 13:39:38 zeus ChangeLog file is added. Its the very begining. - @@ -1,7 +1,7 @@ # http://module-build.sourceforge.net/META-spec.html #XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX# name: renrot -version: 0.16.1 +version: 0.16.2 version_from: renrot installdirs: site requires: @@ -7,7 +7,7 @@ For prevent incorrect associations some explanations are needed here. The name of project is short form of 'REName and ROTate' and no other interpretation will be used. -Renrot is intended to work only in current directory with all files of the +RenRot is intended to work only in current directory with all files of the extension, specified after --ext. You can change the behaviour by specifying --work-directory option. @@ -18,7 +18,7 @@ direct name to EXIF data (the date, id or shooting details such as WhiteBalance, ISO e.t.c.). For further information, please, see applied manual. -Renrot rotates file and its thumbnail, according to EXIF tag Orientation. If +RenRot rotates file and its thumbnail, according to EXIF tag Orientation. If the tag is absent or miss set, than the script allows to rotate the file as well as it's thumbnail "by hands". @@ -28,7 +28,7 @@ Furthermore, the script can put a comment to: Personal data could be specified via XMP tags defined in configuration file. -In addition renrot can aggregate all files in directories according the given +In addition RenRot can aggregate all files in directories according the given date/time pattern template, set with --aggr-template. WHY RenRot? @@ -6,23 +6,27 @@ TODO SEMANTICS ? needs to be checked -TODO LIST +EXIF tags -- to write to some EXIF tag sometning like "Processed with renrot" +- to write to some tag sometning like "Processed with RenRot" -- to implement work with separate files rather than with whole directory +? to write to some tag the options passed to renrot -+ to implement possibility to add patterns for file naming ( to make it - possible to name files in a different ways, YYYYMMDDHHmmSS, YYMMDDHHmmSS - e.t.c.) ++- to review XMP tags related code -+- to complete verbose output option implementation -? UTF8fy (comments, tags, ...) +Disk I/O + +- to implement work with separate files rather than with whole directory - decrease disk IO operations as possible -+- to review XMP tags related code + +File naming + ++ to implement possibility to add patterns for file naming ( to make it + possible to name files in a different ways, YYYYMMDDHHmmSS, YYMMDDHHmmSS + e.t.c.) - to implement aggregation option ( to aggregate large bundle of files according the different time intervals, perhapse with some kind of @@ -32,6 +36,15 @@ TODO LIST the files number in the directory to process, i mean 0xx for the number less than 100, e.t.c. + +Verbosity + ++- to complete verbose output option implementation + ? to implement progress indicator or spinning indicator -? to write to some EXIF tag the options passed to renrot + +Other + +? UTF8fy (comments, tags, ...) + @@ -11,7 +11,7 @@ use Time::Local; use Image::ExifTool; use Getopt::Long; -our $VERSION = "0.16.1"; # the version of this script +our $VERSION = "0.16.2"; # the version of this script my $noRotation; # no rotation needed, default is to rotate my $rotate; # define the angle, to rotate on, 90 or 270 @@ -26,10 +26,16 @@ my $usageOutput = 0; # flag to show the usage my $configFile; # config file my $comfile; # file with commentary my $verbose = 0; # verbosity of output +my $quiet = 0; # suppressing messages my $dir = "."; # we'll work ONLY in current directory my $mtime; # to set mtime our $mTime; # mtime to use to set +# processing message +sub procmsg { + print @_ if ($quiet == 0); +} + # information message sub infomsg { print STDERR @_; @@ -76,6 +82,7 @@ sub getopt { "mtime" => \$mtime, "config-file|c=s" => \$configFile, "v+" => \$verbose, + "q" => \$quiet, "version" => \$ver, "help|?" => \$help); @@ -201,7 +208,7 @@ while ( defined ( $file = readdir DIR )) { our $anglesuffix; # the suffix to add to the end of the rotated files 90cw or 270cw foreach $file ( @files ) { - print "Processing file: $file ...\n"; + procmsg ("Processing file: $file ...\n"); # Setup defaults $info = $exifTool->ImageInfo($file); @@ -259,7 +266,7 @@ foreach $file ( @files ) { $newfilename = sprintf("%s.%.4d",$newfilename,$filecounter); } $filenameshash{$newfilename} = 1; - + $newfilename = sprintf("%s.%s", $newfilename, $extentionToProcessLowCase); if ( $file ne $newfilename ) { @@ -268,7 +275,7 @@ foreach $file ( @files ) { } rename ( $file, $newfilename ) || ( fatalmsg ("Unable to rename $file -> $newfilename.\n"), die ); - print "Renamed: $file -> $newfilename\n"; + procmsg ("Renamed: $file -> $newfilename\n"); } else { warnmsg ("No renaming needed for $newfilename, it looks as needed!\n"); } } @@ -346,7 +353,7 @@ foreach $file ( @files ) { dbgmsg (2, "main(): Changing mtime for $newfilename ok.\n"); } - print "\n"; + procmsg ("\n"); $filecounter++; } @@ -357,7 +364,7 @@ closedir(DIR); # file aggregation if requested # if ( defined $aggrTemplate ) { - infomsg ("NOW IS FILE AGGREGATION\n=======================\n\n"); + procmsg ("NOW IS FILE AGGREGATION\n=======================\n"); $filecounter=1; foreach $file ( sort ( keys %filenameshash ) ) { $file .= ".jpg"; @@ -366,9 +373,10 @@ if ( defined $aggrTemplate ) { if ( not -d $newfilename ) { unless ( mkdir $newfilename ) { errmsg ("$newfilename wasn't created!\n"); } } - infomsg ( "$file has been aggregated to the directory $newfilename\n" ); + procmsg ( "$file has been aggregated to the directory $newfilename\n" ); $newfilename .= "/" . $file; rename ( $file, $newfilename ) || ( fatalmsg ("$file -> $newfilename\n"), die ); + procmsg ("\n"); $filecounter++; } } @@ -435,7 +443,7 @@ sub getTimestamp { $timestamp = timeNow(); warnmsg ("EXIF timestamp isn't correct, using timeNow()!\n"); } - + return $timestamp; } @@ -687,7 +695,7 @@ renrot [OPTIONS] B<RenRot> is intended to work ONLY in current directory. You can change the behaviour by specifying B<--work-directory> option. -Renrot renames files according the DateTimeOriginal and FileModifyDate EXIF +RenRot renames files according the DateTimeOriginal and FileModifyDate EXIF tags, if they exist. Otherwise, the name will be set according to the current time stamp and will look as YYYYmmddHHMMSS.XXXX.jpg, where XXXX is whether file ID, if exists in EXIF (as for Canon) or incremental suffix to the name @@ -710,7 +718,7 @@ The script can also put commentary into: Personal details can be specified via XMP tags defined in a configuration file, look L<CONFIG> section. -In addition renrot can aggregate all files in directories according the given +In addition RenRot can aggregate all files in directories according the given date/time pattern template, set with B<--aggr-template>. =head1 OPTIONS @@ -727,8 +735,8 @@ location of the configuration file =item B<-v> -one or more I<-v> sets debug level. from 1 to 4 - internal levels, -5 till 9 - equal to 1-5 levels for ExifTool plus maximum verbosity for renrot +one or more I<-v> sets debug level. from 1 to 4 - internal levels, +5 till 9 - equal to 1-5 levels for ExifTool plus maximum verbosity for renrot. =item B<--work-directory> I<DIR> @@ -811,25 +819,10 @@ B<%y> last two digits of year (00..99) =item B<--aggr-template> I<Aggregation TEMPLATE> -template, which is used for file aggregation. Aggragation fulfils according date/time patterns. - -=over - -B<%d> day of the month (01-31) - -B<%H> hour (00-23) - -B<%M> minute (00-59) - -B<%m> month (01-12) - -B<%S> second (00-59) - -B<%Y> year (1900, 1901, and so on) - -B<%y> last two digits of year (00..99) - -=back +template, which is used for file aggregation. Aggregation fulfils according +date/time patterns. You may use combination of B<%d>, B<%H>, B<%M>, B<%m>, +B<%S>, B<%Y>, and/or B<%y> keys. For detailed description, please, turn to +B<--name-template> option. =back diff --git a/renrot.spec b/renrot.spec index 44fb2a7..97c1a50 100644 --- a/renrot.spec +++ b/renrot.spec @@ -1,5 +1,5 @@ Name: renrot -Version: 0.16.1 +Version: 0.16.2 Release: 1%{?dist} License: GPL or Artistic Group: Applications/Multimedia |