#!/usr/local/bin/perl # new and improved pixdir! thumbnails are bigger, now automatically # included dark background HTML page w/popups on click for high-contrast, # easy viewing, automatic rebuilding of out-of-date thumbnails, image # optimization, and more! =) $|=1; sub go($){ my ($cmd) = @_; print $cmd; `$cmd`; print "\n"; } sub convfiles{ my($dir,@files) = @_; foreach $file (sort @files){ my ($dest) = $file =~ /^.*\/(.*?)$/; $dest = $file if(!$dest); print $file." [dir $dir dest $dest]\n"; my $ftime = (stat($file))[9]; unless((-e "$dir/.thumb/$dest") && (((stat(_))[9]) >= $ftime)){ go "convert $file -quality 80 -geometry 300x300 $dir/.thumb/$dest"; go "jhead -da $dir/.thumb/$dest"; } unless((-e "$dir/.thumb-small/$dest") && (((stat(_))[9]) >= $ftime)){ go "convert $file -quality 50 -geometry 133x100 $dir/.thumb-small/$dest"; go "jhead -da $dir/.thumb-small/$dest"; } unless((-e "$dir/.full/$dest") && (((stat(_))[9]) > $ftime)){ go "convert $file -quality 80 -geometry 700x700 $dir/.full/$dest"; } } } sub convdir($){ my ($dir) = @_; my ($subdir,@dlist,@files,@dirs,$index); print STDERR "in $dir (given @_)\n"; # $dir =~ s/^\.\///; opendir(DIR, $dir) || die "couldn't open directory $dir: $!"; $dir =~ s/\/$//; # nuke trailing slash @dlist = map { $dir."/".$_ } grep { !/^\./ } readdir(DIR); closedir(DIR); @files = map { /^(?:\.\/)?(.*)$/ } grep { -f $_ && /\.jpe?g$/i} @dlist; @dirs = grep { -d $_ } @dlist; # recurse! if($#dirs >= 0){ print STDERR "recursing into @dirs\n"; foreach $subdir (@dirs) { convdir($subdir); } print STDERR "done!\n"; } # do the little index if(-x $dir."/index.php"){ unlink($dir."/index.php"); } if(-x $dir."/index.php3"){ unlink($dir."/index.php3"); } open(INDEX,">".$dir."/index.php"); # insert header print INDEX q{