exiftool_vendored 12.11.0 → 12.12.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +12 -0
- data/bin/MANIFEST +2 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +11 -5
- data/bin/lib/Image/ExifTool.pm +4 -2
- data/bin/lib/Image/ExifTool/Canon.pm +2 -1
- data/bin/lib/Image/ExifTool/Geotag.pm +29 -10
- data/bin/lib/Image/ExifTool/Import.pm +2 -2
- data/bin/lib/Image/ExifTool/Nikon.pm +1 -0
- data/bin/lib/Image/ExifTool/Olympus.pm +1 -0
- data/bin/lib/Image/ExifTool/QuickTime.pm +18 -9
- data/bin/lib/Image/ExifTool/Sony.pm +3 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb85849da2fdeb7f34dcbd03ba9548e5744c692f93d8163cf3029a5189f75d2c
|
4
|
+
data.tar.gz: 0fd722ec987c17f4449f7eb9d18101286ceff673134d784833acd811cd376a09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8273b84dd45c1b266eec1a0c13c14e0c60e6f68c3bbd76fce169002a9983606b76f70e636199b751dda2f8f6992ea39b164f4d24c29849fa494b30b4ad14b1fa
|
7
|
+
data.tar.gz: a65c0a97fdbc17365a46bd7605b36e72557004549f92ba9fc1f02d7358899643932125a499d65daa88eddebbf9c7a8d343c037b70baa4ff30802c97dfb66efd6
|
data/bin/Changes
CHANGED
@@ -7,6 +7,18 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 12.00. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
Dec. 4, 2020 - Version 12.12
|
11
|
+
|
12
|
+
- Added ability to geotag from DJI CSV log files
|
13
|
+
- Added a new CanonModelID
|
14
|
+
- Added a couple of new Sony LensType values (thanks LibRaw)
|
15
|
+
- Enhanced -csvDelim option to allow "\t", "\n", "\r" and "\\"
|
16
|
+
- Unescape "\b" and "\f" in imported JSON values
|
17
|
+
- Fixed bug introduced in 12.10 which generated a "Not an integer" warning
|
18
|
+
when attempting to shift some QuickTime date/time tags
|
19
|
+
- Fixed shared-write permission problem with -@ argfile when using -stay_open
|
20
|
+
and a filename containing special characters on Windows
|
21
|
+
|
10
22
|
Nov. 27, 2020 - Version 12.11
|
11
23
|
|
12
24
|
- Added -csvDelim option
|
data/bin/MANIFEST
CHANGED
@@ -567,6 +567,7 @@ t/GeoTiff_4.out
|
|
567
567
|
t/Geotag.t
|
568
568
|
t/Geotag_10.out
|
569
569
|
t/Geotag_11.out
|
570
|
+
t/Geotag_12.out
|
570
571
|
t/Geotag_2.out
|
571
572
|
t/Geotag_3.out
|
572
573
|
t/Geotag_5.out
|
@@ -986,6 +987,7 @@ t/images/Geotag.log
|
|
986
987
|
t/images/Geotag.xml
|
987
988
|
t/images/Geotag2.log
|
988
989
|
t/images/Geotag3.log
|
990
|
+
t/images/Geotag_DJI_2020-12-02_[07-50-31].csv
|
989
991
|
t/images/GoPro.jpg
|
990
992
|
t/images/HTML.html
|
991
993
|
t/images/ICC_Profile.icc
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -106,8 +106,8 @@ your home directory, then you would type the following commands in a
|
|
106
106
|
terminal window to extract and run ExifTool:
|
107
107
|
|
108
108
|
cd ~/Desktop
|
109
|
-
gzip -dc Image-ExifTool-12.
|
110
|
-
cd Image-ExifTool-12.
|
109
|
+
gzip -dc Image-ExifTool-12.12.tar.gz | tar -xf -
|
110
|
+
cd Image-ExifTool-12.12
|
111
111
|
./exiftool t/images/ExifTool.jpg
|
112
112
|
|
113
113
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
use strict;
|
11
11
|
require 5.004;
|
12
12
|
|
13
|
-
my $version = '12.
|
13
|
+
my $version = '12.12';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -859,7 +859,11 @@ for (;;) {
|
|
859
859
|
}
|
860
860
|
if (/^csvdelim$/i) {
|
861
861
|
$csvDelim = shift;
|
862
|
-
defined $csvDelim or Error("Expecting argument for -csvDelim option\n"), $badCmd=1;
|
862
|
+
defined $csvDelim or Error("Expecting argument for -csvDelim option\n"), $badCmd=1, next;
|
863
|
+
$csvDelim =~ /"/ and Error("CSV delimiter can not contain a double quote\n"), $badCmd=1, next;
|
864
|
+
my %unescape = ( 't'=>"\t", 'n'=>"\n", 'r'=>"\r", '\\' => '\\' );
|
865
|
+
$csvDelim =~ s/\\(.)/$unescape{$1}||"\\$1"/sge;
|
866
|
+
$mt->Options(CSVDelim => $csvDelim);
|
863
867
|
next;
|
864
868
|
}
|
865
869
|
if (/^d$/ or $a eq 'dateformat') {
|
@@ -5095,8 +5099,10 @@ generate a fixed-column CSV file instead of using the B<-csv> option.
|
|
5095
5099
|
|
5096
5100
|
=item B<-csvDelim> I<STR>
|
5097
5101
|
|
5098
|
-
Set the delimiter for separating CSV entries for
|
5099
|
-
|
5102
|
+
Set the delimiter for separating CSV entries for CSV file input/output via
|
5103
|
+
the B<-csv> option. I<STR> may contain "\t", "\n", "\r" and "\\" to
|
5104
|
+
represent TAB, LF, CR and '\' respectively. A double quote is not allowed
|
5105
|
+
in the delimiter. Default is ','.
|
5100
5106
|
|
5101
5107
|
=item B<-d> I<FMT> (B<-dateFormat>)
|
5102
5108
|
|
@@ -5349,7 +5355,7 @@ with this command:
|
|
5349
5355
|
|
5350
5356
|
produces output like this:
|
5351
5357
|
|
5352
|
-
-- Generated by ExifTool 12.
|
5358
|
+
-- Generated by ExifTool 12.12 --
|
5353
5359
|
File: a.jpg - 2003:10:31 15:44:19
|
5354
5360
|
(f/5.6, 1/60s, ISO 100)
|
5355
5361
|
File: b.jpg - 2006:05:23 11:57:38
|
data/bin/lib/Image/ExifTool.pm
CHANGED
@@ -28,7 +28,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
28
28
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
29
29
|
%jpegMarker %specialTags %fileTypeLookup $testLen $exePath);
|
30
30
|
|
31
|
-
$VERSION = '12.
|
31
|
+
$VERSION = '12.12';
|
32
32
|
$RELEASE = '';
|
33
33
|
@ISA = qw(Exporter);
|
34
34
|
%EXPORT_TAGS = (
|
@@ -4002,7 +4002,9 @@ sub Open($*$;$)
|
|
4002
4002
|
}
|
4003
4003
|
my $share = 0;
|
4004
4004
|
eval {
|
4005
|
-
|
4005
|
+
unless ($access & Win32API::File::GENERIC_WRITE()) {
|
4006
|
+
$share = Win32API::File::FILE_SHARE_READ() | Win32API::File::FILE_SHARE_WRITE();
|
4007
|
+
}
|
4006
4008
|
};
|
4007
4009
|
my $wh = eval { Win32API::File::CreateFileW($file, $access, $share, [], $create, 0, []) };
|
4008
4010
|
return undef unless $wh;
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.42';
|
92
92
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
@@ -944,6 +944,7 @@ $VERSION = '4.41';
|
|
944
944
|
0x80000436 => 'EOS SL3 / 250D / Kiss X10', #25
|
945
945
|
0x80000437 => 'EOS 90D', #IB
|
946
946
|
0x80000453 => 'EOS R6', #PH
|
947
|
+
0x80000467 => 'PowerShot ZOOM',
|
947
948
|
0x80000520 => 'EOS D2000C', #IB
|
948
949
|
0x80000560 => 'EOS D6000C', #PH (guess)
|
949
950
|
);
|
@@ -13,6 +13,7 @@
|
|
13
13
|
# 2016/07/13 - PH Added ability to geotag date/time only
|
14
14
|
# 2019/07/02 - PH Added ability to read IMU CSV files
|
15
15
|
# 2019/11/10 - PH Also write pitch to CameraElevationAngle
|
16
|
+
# 2020/12/01 - PH Added ability to read DJI CSV log files
|
16
17
|
#
|
17
18
|
# References: 1) http://www.topografix.com/GPX/1/1/
|
18
19
|
# 2) http://www.gpsinformation.org/dale/nmea.htm#GSA
|
@@ -27,7 +28,7 @@ use vars qw($VERSION);
|
|
27
28
|
use Image::ExifTool qw(:Public);
|
28
29
|
use Image::ExifTool::GPS;
|
29
30
|
|
30
|
-
$VERSION = '1.
|
31
|
+
$VERSION = '1.64';
|
31
32
|
|
32
33
|
sub JITTER() { return 2 } # maximum time jitter
|
33
34
|
|
@@ -133,7 +134,7 @@ sub LoadTrackLog($$;$)
|
|
133
134
|
my ($et, $val) = @_;
|
134
135
|
my ($raf, $from, $time, $isDate, $noDate, $noDateChanged, $lastDate, $dateFlarm);
|
135
136
|
my ($nmeaStart, $fixSecs, @fixTimes, $lastFix, %nmea, @csvHeadings);
|
136
|
-
my ($canCut, $cutPDOP, $cutHDOP, $cutSats, $e0, $e1, @tmp);
|
137
|
+
my ($canCut, $cutPDOP, $cutHDOP, $cutSats, $e0, $e1, @tmp, $trackFile, $trackTime);
|
137
138
|
|
138
139
|
unless (eval { require Time::Local }) {
|
139
140
|
return 'Geotag feature requires Time::Local installed';
|
@@ -159,6 +160,7 @@ sub LoadTrackLog($$;$)
|
|
159
160
|
} else {
|
160
161
|
# $val is track file name
|
161
162
|
if ($et->Open(\*EXIFTOOL_TRKFILE, $val)) {
|
163
|
+
$trackFile = $val;
|
162
164
|
$raf = new File::RandomAccess(\*EXIFTOOL_TRKFILE);
|
163
165
|
unless ($raf->Read($_, 256)) {
|
164
166
|
close EXIFTOOL_TRKFILE;
|
@@ -201,6 +203,8 @@ sub LoadTrackLog($$;$)
|
|
201
203
|
my $skipped = 0;
|
202
204
|
my $lastSecs = 0;
|
203
205
|
my $fix = { };
|
206
|
+
my $csvDelim = $et->Options('CSVDelim');
|
207
|
+
$csvDelim = ',' unless defined $csvDelim;
|
204
208
|
my (@saveFix, $timeSpan);
|
205
209
|
for (;;) {
|
206
210
|
$raf->ReadLine($_) or last;
|
@@ -230,19 +234,31 @@ sub LoadTrackLog($$;$)
|
|
230
234
|
$format = 'Winplus';
|
231
235
|
} elsif (/^\s*\d+\s+.*\sypr\s*$/ and (@tmp=split) == 12) {
|
232
236
|
$format = 'Bramor';
|
233
|
-
} elsif (/\b(GPS)?Date/i and /\b(GPS)?(Date)?Time/i and
|
237
|
+
} elsif (((/\b(GPS)?Date/i and /\b(GPS)?(Date)?Time/i) or /\bTime\(seconds\)/i) and /\Q$csvDelim/) {
|
234
238
|
chomp;
|
235
|
-
@csvHeadings = split
|
239
|
+
@csvHeadings = split /\Q$csvDelim/;
|
236
240
|
$format = 'CSV';
|
237
241
|
# convert recognized headings to our parameter names
|
238
242
|
foreach (@csvHeadings) {
|
239
243
|
my $param;
|
240
244
|
s/^GPS ?//; # remove leading "GPS" to simplify regex patterns
|
241
|
-
if (/^
|
245
|
+
if (/^Time ?\(seconds\)$/i) { # DJI
|
246
|
+
# DJI CSV log files have a column "Time(seconds)" which is seconds since
|
247
|
+
# the start of the flight. The date/time is obtained from the file name.
|
248
|
+
$param = 'runtime';
|
249
|
+
if ($trackFile and $trackFile =~ /(\d{4})-(\d{2})-(\d{2})[^\/]+(\d{2})-(\d{2})-(\d{2})[^\/]*$/) {
|
250
|
+
$trackTime = Image::ExifTool::TimeLocal($6,$5,$4,$3,$2-1,$1);
|
251
|
+
my $utc = PrintFixTime($trackTime);
|
252
|
+
my $tzs = Image::ExifTool::TimeZoneString([$6,$5,$4,$3,$2-1,$1-1900],$trackTime);
|
253
|
+
$et->VPrint(2, " DJI start time: $utc (local timezone is $tzs)\n");
|
254
|
+
} else {
|
255
|
+
return 'Error getting start time from file name for DJI CSV track file';
|
256
|
+
}
|
257
|
+
} elsif (/^Date ?Time/i) { # ExifTool addition
|
242
258
|
$param = 'datetime';
|
243
259
|
} elsif (/^Date/i) {
|
244
260
|
$param = 'date';
|
245
|
-
} elsif (/^Time/i) {
|
261
|
+
} elsif (/^Time(?! ?\(text\))/i) { # (ignore DJI "Time(text)" column)
|
246
262
|
$param = 'time';
|
247
263
|
} elsif (/^(Pos)?Lat/i) {
|
248
264
|
$param = 'lat';
|
@@ -423,7 +439,7 @@ DoneFix: $isDate = 1;
|
|
423
439
|
goto DoneFix; # save this fix
|
424
440
|
} elsif ($format eq 'CSV') {
|
425
441
|
chomp;
|
426
|
-
my @vals = split
|
442
|
+
my @vals = split /\Q$csvDelim/;
|
427
443
|
#
|
428
444
|
# CSV format output of GPS/IMU POS system
|
429
445
|
# Date* - date in DD/MM/YYYY format
|
@@ -435,7 +451,7 @@ DoneFix: $isDate = 1;
|
|
435
451
|
# [Angle]Pitch* - pitch angle in degrees
|
436
452
|
# [Angle]Roll* - roll angle in degrees
|
437
453
|
# (ExifTool enhancements allow for standard tag names or descriptions as the column headings,
|
438
|
-
# add support for time zones and flexible coordinates, and allow
|
454
|
+
# add support for time zones and flexible coordinates, and allow new DateTime and Shift columns)
|
439
455
|
#
|
440
456
|
my ($param, $date, $secs);
|
441
457
|
foreach $param (@csvHeadings) {
|
@@ -463,6 +479,9 @@ DoneFix: $isDate = 1;
|
|
463
479
|
}
|
464
480
|
} elsif ($param eq 'lat' or $param eq 'lon') {
|
465
481
|
$$fix{$param} = Image::ExifTool::GPS::ToDegrees($val, 1);
|
482
|
+
} elsif ($param eq 'runtime') {
|
483
|
+
$date = $trackTime;
|
484
|
+
$secs = $val;
|
466
485
|
} else {
|
467
486
|
$$fix{$param} = $val;
|
468
487
|
}
|
@@ -1378,8 +1397,8 @@ This module is used by Image::ExifTool
|
|
1378
1397
|
This module loads GPS track logs, interpolates to determine position based
|
1379
1398
|
on time, and sets new GPS values for geotagging images. Currently supported
|
1380
1399
|
formats are GPX, NMEA RMC/GGA/GLL, KML, IGC, Garmin XML and TCX, Magellan
|
1381
|
-
PMGNTRK, Honeywell PTNTHPR, Winplus Beacon text, IMU CSV,
|
1382
|
-
files.
|
1400
|
+
PMGNTRK, Honeywell PTNTHPR, Winplus Beacon text, IMU CSV, DJI CSV, and
|
1401
|
+
Bramor gEO log files.
|
1383
1402
|
|
1384
1403
|
Methods in this module should not be called directly. Instead, the Geotag
|
1385
1404
|
feature is accessed by writing the values of the ExifTool Geotag, Geosync
|
@@ -12,13 +12,13 @@ require Exporter;
|
|
12
12
|
|
13
13
|
use vars qw($VERSION @ISA @EXPORT_OK);
|
14
14
|
|
15
|
-
$VERSION = '1.
|
15
|
+
$VERSION = '1.10';
|
16
16
|
@ISA = qw(Exporter);
|
17
17
|
@EXPORT_OK = qw(ReadCSV ReadJSON);
|
18
18
|
|
19
19
|
sub ReadJSONObject($;$);
|
20
20
|
|
21
|
-
my %unescapeJSON = ( 't'=>"\t", 'n'=>"\n", 'r'=>"\r" );
|
21
|
+
my %unescapeJSON = ( 't'=>"\t", 'n'=>"\n", 'r'=>"\r", 'b' => "\b", 'f' => "\f" );
|
22
22
|
my $charset;
|
23
23
|
|
24
24
|
#------------------------------------------------------------------------------
|
@@ -138,6 +138,7 @@ my %olympusLensTypes = (
|
|
138
138
|
'1 15 00' => 'Sigma 10-20mm F4.0-5.6 EX DC HSM', #11
|
139
139
|
'1 16 00' => 'Sigma APO 70-200mm F2.8 II EX DG Macro HSM', #11
|
140
140
|
'1 17 00' => 'Sigma 50mm F1.4 EX DG HSM', #11
|
141
|
+
'1 18 60' => 'Test',
|
141
142
|
# Panasonic/Leica lenses
|
142
143
|
'2 01 00' => 'Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.', #11
|
143
144
|
'2 01 10' => 'Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS', #16
|
@@ -217,8 +217,13 @@ my %ftypLookup = (
|
|
217
217
|
# information for time/date-based tags (time zero is Jan 1, 1904)
|
218
218
|
my %timeInfo = (
|
219
219
|
Notes => 'converted from UTC to local time if the QuickTimeUTC option is set',
|
220
|
+
Shift => 'Time',
|
221
|
+
Writable => 1,
|
222
|
+
Permanent => 1,
|
223
|
+
DelValue => 0,
|
220
224
|
# It is not uncommon for brain-dead software to use the wrong time zero,
|
221
225
|
# so assume a time zero of Jan 1, 1970 if the date is before this
|
226
|
+
# Note: This value will be in UTC if generated by a system that is aware of the time zone
|
222
227
|
RawConv => q{
|
223
228
|
my $offset = (66 * 365 + 17) * 24 * 3600;
|
224
229
|
return $val - $offset if $val >= $offset or $$self{OPTIONS}{QuickTimeUTC};
|
@@ -227,14 +232,18 @@ my %timeInfo = (
|
|
227
232
|
}
|
228
233
|
return $val;
|
229
234
|
},
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
235
|
+
RawConvInv => q{
|
236
|
+
if ($$self{FileType} eq 'CR3' and not $self->Options('QuickTimeUTC')) {
|
237
|
+
# convert to UTC
|
238
|
+
my $offset = (66 * 365 + 17) * 24 * 3600;
|
239
|
+
$val = ConvertUnixTime($val - $offset);
|
240
|
+
$val = GetUnixTime($val, 1) + $offset;
|
241
|
+
}
|
242
|
+
return $val;
|
243
|
+
},
|
244
|
+
# (all CR3 files store UTC times - PH)
|
236
245
|
ValueConv => 'ConvertUnixTime($val, $self->Options("QuickTimeUTC") || $$self{FileType} eq "CR3")',
|
237
|
-
ValueConvInv => '$val',
|
246
|
+
ValueConvInv => 'GetUnixTime($val, $self->Options("QuickTimeUTC")) + (66 * 365 + 17) * 24 * 3600',
|
238
247
|
PrintConv => '$self->ConvertDateTime($val)',
|
239
248
|
PrintConvInv => '$self->InverseDateTime($val)',
|
240
249
|
# (can't put Groups here because they aren't constant!)
|
@@ -8639,10 +8648,10 @@ sub ProcessSampleDesc($$$)
|
|
8639
8648
|
my $dirLen = $$dirInfo{DirLen} || (length($$dataPt) - $pos);
|
8640
8649
|
return 0 if $pos + 8 > $dirLen;
|
8641
8650
|
|
8642
|
-
my $num = Get32u($dataPt, 4); # get number of sample
|
8651
|
+
my $num = Get32u($dataPt, 4); # get number of sample entries in table
|
8643
8652
|
$pos += 8;
|
8644
8653
|
my $i;
|
8645
|
-
for ($i=0; $i<$num; ++$i) { # loop through sample
|
8654
|
+
for ($i=0; $i<$num; ++$i) { # loop through sample entries
|
8646
8655
|
last if $pos + 8 > $dirLen;
|
8647
8656
|
my $size = Get32u($dataPt, $pos);
|
8648
8657
|
last if $pos + $size > $dirLen;
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
34
34
|
use Image::ExifTool::Exif;
|
35
35
|
use Image::ExifTool::Minolta;
|
36
36
|
|
37
|
-
$VERSION = '3.
|
37
|
+
$VERSION = '3.33';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -217,6 +217,8 @@ sub PrintInvLensSpec($;$$);
|
|
217
217
|
50518 => 'Sigma 100-400mm F5-6.3 DG DN OS | C', #JR (020)
|
218
218
|
50521 => 'Sigma 85mm F1.4 DG DN | A', #JR (020)
|
219
219
|
50522 => 'Sigma 105mm F2.8 DG DN MACRO | A', #JR (020)
|
220
|
+
50523 => 'Sigma 65mm F2 DG DN | C', #IB (020)
|
221
|
+
50524 => 'Sigma 35mm F2 DG DN | C', #IB (020)
|
220
222
|
|
221
223
|
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
|
222
224
|
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.
|
4
|
+
version: 12.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-12-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|