libis-format 0.9.44 → 0.9.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/formatinfo +20 -0
- data/data/types.yml +1 -1
- data/lib/libis/format/identifier.rb +2 -2
- data/lib/libis/format/tool/droid.rb +6 -10
- data/lib/libis/format/tool/extension_identification.rb +3 -3
- data/lib/libis/format/tool/fido.rb +14 -6
- data/lib/libis/format/tool/file_tool.rb +3 -3
- data/lib/libis/format/tool/identification_tool.rb +11 -10
- data/lib/libis/format/version.rb +1 -1
- data/spec/identifier_spec.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90f7a025d3c3669dbb927c8c9b15c69f2d56920e
|
4
|
+
data.tar.gz: 2f44a0d3433882991a5bb2f68a40b0b68c1ae6e8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac9e8ca2115f0d57fd3d161bbab2e9ecd5d1f7e08b2517bfaa5793a644555921ea404f806f2a99cba44044b72f236636cadd4a4258a199ec0fbed1021dfd095a
|
7
|
+
data.tar.gz: 2a61012eb18282b6f0164abf4948d5018e207c414cebc489296b50679594877c4bd33cd38003901ec0d05a6349fa25fd06e98ecb2707207e3aced31e9c173b1c
|
data/bin/formatinfo
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'libis-format'
|
4
|
+
require 'libis-tools'
|
5
|
+
require 'awesome_print'
|
6
|
+
|
7
|
+
::Libis::Tools::Config.logger.level = :WARN
|
8
|
+
|
9
|
+
result = ::Libis::Format::Identifier.get ARGV[0]
|
10
|
+
|
11
|
+
puts '--- messages ---'
|
12
|
+
result[:messages].each do |message|
|
13
|
+
puts "#{message[0]} : #{message[1]}"
|
14
|
+
end
|
15
|
+
|
16
|
+
puts '--- formats ---'
|
17
|
+
result[:formats].each do |file, info|
|
18
|
+
puts "#{file}:"
|
19
|
+
ap info
|
20
|
+
end
|
data/data/types.yml
CHANGED
@@ -97,7 +97,7 @@ module Libis
|
|
97
97
|
end
|
98
98
|
|
99
99
|
def get_fido_identification(file, result, options)
|
100
|
-
output = ::Libis::Format::Tool::Fido.run(file, options[:recursive])
|
100
|
+
output = ::Libis::Format::Tool::Fido.run(file, options[:recursive], options[:fido_options])
|
101
101
|
process_tool_output(output, result, options[:base_dir])
|
102
102
|
output
|
103
103
|
end
|
@@ -197,7 +197,7 @@ module Libis
|
|
197
197
|
|
198
198
|
def process_tool_output(output, result, base_dir)
|
199
199
|
output.each do |file, file_output|
|
200
|
-
file = Pathname.new(file).relative_path_from(Pathname(base_dir)).to_s.freeze if base_dir
|
200
|
+
file = Pathname.new(file).relative_path_from(Pathname(File.absolute_path(base_dir))).to_s.freeze if base_dir
|
201
201
|
result[:output][file] ||= []
|
202
202
|
result[:output][file] += file_output
|
203
203
|
end
|
@@ -20,28 +20,24 @@ module Libis
|
|
20
20
|
|
21
21
|
class Droid < Libis::Format::Tool::IdentificationTool
|
22
22
|
|
23
|
-
def run_list(filelist)
|
23
|
+
def run_list(filelist, _options = {})
|
24
24
|
runner(filelist)
|
25
25
|
end
|
26
26
|
|
27
|
-
def run_dir(dir, recursive = true)
|
28
|
-
|
29
|
-
report = result_file_name
|
30
|
-
create_profile(dir, profile, recursive)
|
31
|
-
create_report(profile, report)
|
32
|
-
parse_report(report)
|
27
|
+
def run_dir(dir, recursive = true, _options = {})
|
28
|
+
runner(dir, recursive)
|
33
29
|
end
|
34
30
|
|
35
|
-
def run(file)
|
31
|
+
def run(file, _options = {})
|
36
32
|
runner(file)
|
37
33
|
end
|
38
34
|
|
39
35
|
protected
|
40
36
|
|
41
|
-
def runner(file_or_list)
|
37
|
+
def runner(file_or_list, recursive = false)
|
42
38
|
profile = profile_file_name
|
43
39
|
report = result_file_name
|
44
|
-
create_profile(file_or_list, profile)
|
40
|
+
create_profile(file_or_list, profile, recursive)
|
45
41
|
create_report(profile, report)
|
46
42
|
parse_report(report)
|
47
43
|
end
|
@@ -6,7 +6,7 @@ module Libis
|
|
6
6
|
|
7
7
|
class ExtensionIdentification < Libis::Format::Tool::IdentificationTool
|
8
8
|
|
9
|
-
def run_list(filelist)
|
9
|
+
def run_list(filelist, _options = {})
|
10
10
|
|
11
11
|
output = runner(nil, filelist)
|
12
12
|
|
@@ -14,7 +14,7 @@ module Libis
|
|
14
14
|
|
15
15
|
end
|
16
16
|
|
17
|
-
def run_dir(dir, recursive = true)
|
17
|
+
def run_dir(dir, recursive = true, _options = {})
|
18
18
|
|
19
19
|
filelist = find_files(dir, recursive)
|
20
20
|
|
@@ -24,7 +24,7 @@ module Libis
|
|
24
24
|
|
25
25
|
end
|
26
26
|
|
27
|
-
def run(file)
|
27
|
+
def run(file, _options)
|
28
28
|
|
29
29
|
output = runner(file)
|
30
30
|
|
@@ -22,22 +22,23 @@ module Libis
|
|
22
22
|
|
23
23
|
attr_reader :formats
|
24
24
|
|
25
|
-
def run_list(filelist)
|
25
|
+
def run_list(filelist, options = {})
|
26
26
|
create_list_file(filelist) do |list_file|
|
27
|
-
output = runner(nil, '-input', list_file.escape_for_string)
|
27
|
+
output = runner(nil, '-input', list_file.escape_for_string, options)
|
28
28
|
process_output(output)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
|
32
|
-
def run_dir(dir, recursive = true)
|
32
|
+
def run_dir(dir, recursive = true, options = {})
|
33
33
|
args = []
|
34
34
|
args << '-recurse' if recursive
|
35
|
+
args << options
|
35
36
|
output = runner(dir, *args)
|
36
37
|
process_output(output)
|
37
38
|
end
|
38
39
|
|
39
|
-
def run(file)
|
40
|
-
output = runner(file)
|
40
|
+
def run(file, options = {})
|
41
|
+
output = runner(file, options)
|
41
42
|
process_output(output)
|
42
43
|
end
|
43
44
|
|
@@ -53,11 +54,18 @@ module Libis
|
|
53
54
|
attr_writer :formats
|
54
55
|
|
55
56
|
def runner(filename, *args)
|
57
|
+
options = {}
|
58
|
+
options = args.pop if args.last.is_a?(Hash)
|
56
59
|
# Load custome format definitions if present
|
57
60
|
args << '-loadformats' << "#{formats.join(',')}" unless formats.empty?
|
58
61
|
|
59
62
|
# Workaround for Fido performance bug
|
60
|
-
args << '-bufsize' <<
|
63
|
+
args << '-bufsize' << (options[:bufsize] || 1000).to_s
|
64
|
+
|
65
|
+
# Other options
|
66
|
+
args << '-container_bufsize' << options[:container_bufsize].to_s if options[:container_bufsize]
|
67
|
+
args << '-pronom_only' if options[:pronom_only]
|
68
|
+
args << '-nocontainer' if options[:nocontainer]
|
61
69
|
|
62
70
|
# Add filename to argument list (optional)
|
63
71
|
args << "#{filename.escape_for_string}" if filename
|
@@ -6,7 +6,7 @@ module Libis
|
|
6
6
|
|
7
7
|
class FileTool < Libis::Format::Tool::IdentificationTool
|
8
8
|
|
9
|
-
def run_list(filelist)
|
9
|
+
def run_list(filelist, _options = {})
|
10
10
|
|
11
11
|
create_list_file(filelist) do |list_file|
|
12
12
|
|
@@ -18,7 +18,7 @@ module Libis
|
|
18
18
|
|
19
19
|
end
|
20
20
|
|
21
|
-
def run_dir(dir, recursive = true)
|
21
|
+
def run_dir(dir, recursive = true, _options = {})
|
22
22
|
|
23
23
|
filelist = find_files(dir, recursive)
|
24
24
|
|
@@ -32,7 +32,7 @@ module Libis
|
|
32
32
|
|
33
33
|
end
|
34
34
|
|
35
|
-
def run(file)
|
35
|
+
def run(file, _options = {})
|
36
36
|
|
37
37
|
output = runner(file)
|
38
38
|
|
@@ -21,26 +21,27 @@ module Libis
|
|
21
21
|
self.instance.bad_mimetype(mimetype)
|
22
22
|
end
|
23
23
|
|
24
|
-
def self.run(file, recursive = false)
|
24
|
+
def self.run(file, recursive = false, options = {})
|
25
|
+
options ||= {}
|
25
26
|
if file.is_a?(Array)
|
26
|
-
return run_list file
|
27
|
+
return run_list file, options
|
27
28
|
elsif file.is_a?(String) && File.exists?(file) && File.readable?(file)
|
28
29
|
if File.directory?(file)
|
29
|
-
return run_dir(file, recursive)
|
30
|
+
return run_dir(file, recursive, options)
|
30
31
|
elsif File.file?(file)
|
31
|
-
return self.instance.run(file)
|
32
|
+
return self.instance.run(file, options)
|
32
33
|
end
|
33
34
|
end
|
34
35
|
raise ArgumentError,
|
35
36
|
'IdentificationTool: file argument should be a path to an existing file or directory or a list of those'
|
36
37
|
end
|
37
38
|
|
38
|
-
def self.run_dir(file, recursive = true)
|
39
|
-
self.instance.run_dir file, recursive
|
39
|
+
def self.run_dir(file, recursive = true, options = {})
|
40
|
+
self.instance.run_dir file, recursive, options
|
40
41
|
end
|
41
42
|
|
42
|
-
def self.run_list(filelist)
|
43
|
-
self.instance.run_list filelist
|
43
|
+
def self.run_list(filelist , options = {})
|
44
|
+
self.instance.run_list filelist, options
|
44
45
|
end
|
45
46
|
|
46
47
|
protected
|
@@ -83,9 +84,9 @@ module Libis
|
|
83
84
|
#
|
84
85
|
def process_output(output)
|
85
86
|
output.reduce({}) do |results, x|
|
86
|
-
filepath = x.delete(:filepath)
|
87
|
+
filepath = File.absolute_path(x.delete(:filepath)).freeze
|
87
88
|
results[filepath] ||= []
|
88
|
-
results[filepath
|
89
|
+
results[filepath] << annotate(x)
|
89
90
|
results
|
90
91
|
end
|
91
92
|
end
|
data/lib/libis/format/version.rb
CHANGED
data/spec/identifier_spec.rb
CHANGED
@@ -96,7 +96,7 @@ describe 'Identfier' do
|
|
96
96
|
File.exists?(Libis::Format::Config[:fido_path])) do
|
97
97
|
|
98
98
|
it 'should identify all files in a folder at once' do
|
99
|
-
result = identifier.get
|
99
|
+
result = identifier.get(dir)
|
100
100
|
expect(result[:formats].size).to be >= formatlist.size
|
101
101
|
formatlist.each do |file, format|
|
102
102
|
expect(result[:formats][File.join(dir, file)]).to include format
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: libis-format
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.45
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kris Dekeyser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -143,6 +143,7 @@ email:
|
|
143
143
|
executables:
|
144
144
|
- droid
|
145
145
|
- fido
|
146
|
+
- formatinfo
|
146
147
|
- pdf_copy
|
147
148
|
extensions: []
|
148
149
|
extra_rdoc_files: []
|
@@ -156,6 +157,7 @@ files:
|
|
156
157
|
- Rakefile
|
157
158
|
- bin/droid
|
158
159
|
- bin/fido
|
160
|
+
- bin/formatinfo
|
159
161
|
- bin/pdf_copy
|
160
162
|
- data/ISOcoated_v2_eci.icc
|
161
163
|
- data/PDFA_def.ps
|