#!/usr/bin/perl
use Image::ExifTool 'ImageInfo';
$usage = "Usage: $0
\n";
$uploadDefault = "s400/upload" ;
$sortDefault = "s400" ;
$uploadDir = $ARGV[0] ;
$sortDir = $ARGV[1] ;
if ($sortDir eq "" )
{
print "No sort directory specified, using [$sortDefault]\n";
$sortDir = $sortDefault ;
}
!(-d $sortDir) and die "Cannot open sort dir [$uploadDir]\n$usage" ;
if ($uploadDir eq "" )
{
print "No upload directory specified, using [$uploadDefault]\n";
$uploadDir = $uploadDefault ;
}
opendir ( UPDIR, $uploadDir) || die "Cannot open upload dir [$uploadDir]\n$usage" ;
while ( $img = readdir( UPDIR ) )
{
if ( $img =~ /.*\.[jpg|JPG]/ )
{
$info = ImageInfo("$uploadDir/$img");
$date = $$info{"CreateDate"};
#print "the date for the image is [$date]\n";
$date =~ /^(\S*)\:(\S*)\:(\S*) (\S*)\:(\S*)\:(\S*)$/ ;
$year = $1 ;
$month = $2 ;
$day = $3 ;
$hour = $4 ;
$min = $5 ;
$sec = $6 ;
$mvDir = $sortDir . "/" . $year ;
mkdir $mvDir, 0777 unless -d $mvDir;
$mvDir = $mvDir . "/" . $month ;
mkdir $mvDir, 0777 unless -d $mvDir;
$mvDir = $mvDir . "/" . $day ;
mkdir $mvDir, 0777 unless -d $mvDir;
$add = 1;
$imgMv = $img ;
#only sort files if they aren't already there
if (-e $mvDir."/".$imgMv )
{
$cmd = "diff $uploadDir/$img $mvDir/$imgMv";
$rc = `$cmd`;
#diff returns a line if they differ
if ( $rc ne "" )
{
#now we have 2 files with the same name that are
#different, so change the name of the new file to be
#copied
while (-e $mvDir."/".$imgMv )
{
$imgMv = $img."_$add";
$add ++;
}
$cmd = "cp $uploadDir/$img $mvDir/$imgMv" ;
system($cmd);
}#if diff
}#if exist
else
{
#didn't exist
$cmd = "cp $uploadDir/$img $mvDir/$imgMv" ;
system($cmd);
}
}#if jpg
} #while updir