#!/usr/bin/perl -w # # Straighten the numbering if the first verso page was chosen incorrectly # This should be pretty unlikely, but eh, stuff happens. # if (@ARGV != 2) { printf "Usage: $0 folio|verso ###\n"; exit; } if ($ARGV[0] eq "folio") { # then we had not enough verso pages opendir(DIR, ".") || die "can't get directory"; @allfiles = grep { (/_folio.jpg/ || /_verso.jpg/) && !/thumb_/ } readdir(DIR); closedir DIR; @foliofiles = sort grep { /_folio/ } @allfiles; @versofiles = sort grep { /_verso/ } @allfiles; @fprts = split(/_/, $foliofiles[-1]); $lastfolio = $fptrs[0]; @fprts = split(/_/, $versofiles[-1]); $lastverso = $fptrs[0]; print "allfiles: @allfiles\nfoliofiles: @foliofiles\nversofiles: @versofiles\n"; print "verso: $versofiles[-1],$lastverso\n folio: $foliofiles[-1],$lastfolio\n"; # Number of pages to shift by, blank ones count too $offset = $lastfolio - $ARGV[1]; # Now shift all verso by offset, then tack offset of folio onto the start # I can't believe I made this count from 1... ewww for ($curverso = $lastverso; $curverso > 0; $curverso--) { @mvargs = ("mv", sprintf("%03d", $curverso)."_verso.jpg", sprintf("%03d", $curverso+$offset)."_verso.jpg"); print "@mvargs \n"; # system(@mvargs); @mvargs = ("mv", "thumb_".sprintf("%03d", $curverso)."_verso.jpg", "thumb_".sprintf("%03d", $curverso+$offset)."_verso.jpg"); print "@mvargs \n"; # system(@mvargs); } # Now we shift $curverso = $offset; for ($curfolio = $lastfolio; $curfolio >= $ARGV[1]; $curfolio--) { $curverso--; @mvargs = ("mv", sprintf("%03d", $curfolio)."_folio.jpg", sprintf("%03d", $curverso)."_verso.jpg"); print "@mvargs \n"; # system(@mvargs); @mvargs = ("mv", "thumb_".sprintf("%03d", $curfolio)."_folio.jpg", "thumb_".sprintf("%03d", $curverso)."_verso.jpg"); print "@mvargs \n"; # system(@mvargs); } } elsif ($ARGV[0] eq "verso") { # then we had too many verso pages opendir(DIR, ".") || die "can't get directory"; @allfiles = grep { (/_folio.jpg/ || /_verso.jpg/) && !/thumb_/ } readdir(DIR); closedir DIR; @foliofiles = grep { /_folio/ } @allfiles; @versofiles = grep { /_verso/ } @allfiles; @fprts = split(/_/, $foliofiles[-1]); $lastfolio = $fptrs[0]; @fprts = split(/_/, $versofiles[-1]); $lastverso = $fptrs[0]; # Number of pages to shift by, blank ones count too $offset = $ARGV[1]; $curfolio = $lastfolio; for ($curverso = 1; $curverso <= $offset; $curverso++) { $curfolio++; @mvargs = ("mv", sprintf("%03d", $curverso)."_verso.jpg", sprintf("%03d", $curfolio)."_folio.jpg"); print "@mvargs \n"; # system(@mvargs); @mvargs = ("mv", "thumb_".sprintf("%03d", $curverso)."_verso.jpg", "thumb_".sprintf("%03d", $curfolio)."_folio.jpg"); print "@mvargs \n"; # system(@mvargs); } for ($curverso = $offset+1; $curverso <= $lastverso; $curverso++){ @mvargs = ("mv", sprintf("%03d", $curverso)."_verso.jpg", sprintf("%03d", $curverso-$offset)."_verso.jpg"); print "@mvargs \n"; # system(@mvargs); @mvargs = ("mv", "thumb_".sprintf("%03d", $curverso)."_verso.jpg", "thumb_".sprintf("%03d", $curverso-$offset)."_verso.jpg"); print "@mvargs \n"; # system(@mvargs); } } else { print "Usage: $0 folio|verso ###\n"; exit; } # Output: # tilia% ./firstverso.pl folio 4 # allfiles: 001_folio.jpg 002_folio.jpg 003_folio.jpg 004_folio.jpg 005_folio.jpg # 005_verso.jpg 004_verso.jpg 003_verso.jpg 002_verso.jpg 001_verso.jpg # foliofiles: 001_folio.jpg 002_folio.jpg 003_folio.jpg 004_folio.jpg 005_folio.jpg # versofiles: 001_verso.jpg 002_verso.jpg 003_verso.jpg 004_verso.jpg 005_verso.jpg # Use of uninitialized value in concatenation (.) or string at ./firstverso.pl line 26. # Use of uninitialized value in concatenation (.) or string at ./firstverso.pl line 26. # verso: 005_verso.jpg, # folio: 005_folio.jpg, # Use of uninitialized value in subtraction (-) at ./firstverso.pl line 29. # Use of uninitialized value in numeric gt (>) at ./firstverso.pl line 33. # Use of uninitialized value in numeric ge (>=) at ./firstverso.pl line 45.