word edit: record entry creator and modification time
[sheet.git] / tools / mkimgthumb
index 8875252c214193e7328a5db50f0a7915eaefe152..e2b974dcf09e35ae7fdd27c3bdc3fbf7631880ee 100755 (executable)
@@ -5,14 +5,23 @@ use warnings;
 my $failcount = 0;
 
 for my $src (@ARGV) {
-       my ($name, @cmds) = split /:/, $src =~ s/\.(\w+)\z//r;
+       my ($name, @cmds) = split /:(?<!\\:)/, $src =~ s/\.(\w+)\z//r;
        my $ext = $1 // '*';
        next if $name =~ m/\./;
        unless (-e $src) {
                ($src) = grep {-e} glob qq<"$name"{,:*}.$ext> or next;
        }
+       s/\\(.)/$1/g for @cmds;
        say $name;
-       unshift @cmds, -gravity => 'northwest';
+
+       if (@cmds and $cmds[0] =~ /^\d/) {
+               # crop shorthand from initial dimension argument
+               my @crop = split /\D/, shift @cmds;
+               unshift @cmds, -gravity => 'southeast', -chop => "$crop[2]%x$crop[3]%"
+                       if @crop > 2;
+               unshift @cmds, -chop => "$crop[0]%x$crop[1]%";
+       }
+       unshift @cmds, -gravity => 'northwest' if @cmds;
        push @cmds, -resize => '300x200^', -gravity => 'north', -extent => '300x200';
        push @cmds, '-strip', -quality => '60%';
        system(convert => @cmds, $src => "../$name.jpg") == 0