archiver 1.0.0 → 1.0.1
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.
- data/Gemfile +1 -1
- data/archiver.gemspec +4 -4
- data/bin/archiver +0 -2
- data/lib/archiver/cli.rb +50 -33
- data/lib/archiver/record.rb +16 -4
- data/lib/archiver/version.rb +1 -1
- metadata +5 -5
data/Gemfile
CHANGED
data/archiver.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "archiver"
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Thomas Boerger"]
|
@@ -42,20 +42,20 @@ Gem::Specification.new do |s|
|
|
42
42
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
43
43
|
s.add_runtime_dependency(%q<exifr>, ["~> 1.1.2"])
|
44
44
|
s.add_runtime_dependency(%q<progressbar>, ["~> 0.10.0"])
|
45
|
-
s.add_development_dependency(%q<
|
45
|
+
s.add_development_dependency(%q<whitespace>, ["~> 2.0.4"])
|
46
46
|
s.add_development_dependency(%q<yard>, ["~> 0.7.5"])
|
47
47
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
48
48
|
else
|
49
49
|
s.add_dependency(%q<exifr>, ["~> 1.1.2"])
|
50
50
|
s.add_dependency(%q<progressbar>, ["~> 0.10.0"])
|
51
|
-
s.add_dependency(%q<
|
51
|
+
s.add_dependency(%q<whitespace>, ["~> 2.0.4"])
|
52
52
|
s.add_dependency(%q<yard>, ["~> 0.7.5"])
|
53
53
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
54
54
|
end
|
55
55
|
else
|
56
56
|
s.add_dependency(%q<exifr>, ["~> 1.1.2"])
|
57
57
|
s.add_dependency(%q<progressbar>, ["~> 0.10.0"])
|
58
|
-
s.add_dependency(%q<
|
58
|
+
s.add_dependency(%q<whitespace>, ["~> 2.0.4"])
|
59
59
|
s.add_dependency(%q<yard>, ["~> 0.7.5"])
|
60
60
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
61
61
|
end
|
data/bin/archiver
CHANGED
data/lib/archiver/cli.rb
CHANGED
@@ -12,78 +12,95 @@ module Archiver
|
|
12
12
|
attr_accessor :stderr
|
13
13
|
attr_accessor :config
|
14
14
|
attr_accessor :parser
|
15
|
-
|
15
|
+
|
16
16
|
def initialize(argv, stdout, stderr)
|
17
17
|
@stdout = stdout
|
18
18
|
@stderr = stderr
|
19
|
-
|
19
|
+
|
20
20
|
@config = {
|
21
|
-
:verbose => false
|
21
|
+
:verbose => false,
|
22
|
+
:from => false,
|
23
|
+
:into => false
|
22
24
|
}
|
23
|
-
|
25
|
+
|
24
26
|
@parser = OptionParser.new do |opt|
|
25
|
-
opt.banner = "Usage: archiver [options]
|
27
|
+
opt.banner = "Usage: archiver [options]"
|
28
|
+
|
29
|
+
opt.separator ""
|
30
|
+
opt.separator "Mandatory options:"
|
31
|
+
|
32
|
+
opt.on("-f", "--from DIR", "From directory name") do |dir|
|
33
|
+
@config[:from] = dir
|
34
|
+
end
|
35
|
+
|
36
|
+
opt.on("-i", "--into DIR", "Into directory name") do |dir|
|
37
|
+
@config[:into] = dir
|
38
|
+
end
|
39
|
+
|
40
|
+
opt.separator ""
|
41
|
+
opt.separator "Optional options:"
|
26
42
|
|
27
43
|
opt.on("-V", "--verbose", "Verbose output format") do
|
28
44
|
@config[:verbose] = true
|
29
45
|
end
|
30
46
|
|
31
47
|
opt.on("-h", "--help", "Show this help message") do
|
32
|
-
puts @parser
|
48
|
+
stdout.puts @parser
|
33
49
|
exit 0
|
34
50
|
end
|
35
|
-
|
51
|
+
|
36
52
|
opt.on("-v", "--version", "Show current version") do
|
37
|
-
puts "archiver v#{Version::STRING}"
|
53
|
+
stdout.puts "archiver v#{Version::STRING}"
|
38
54
|
exit 0
|
39
55
|
end
|
40
56
|
end
|
41
57
|
|
42
|
-
|
58
|
+
@parser.parse!
|
59
|
+
|
60
|
+
unless @config[:from] or @config[:into]
|
43
61
|
puts @parser
|
44
62
|
exit 1
|
45
63
|
end
|
46
|
-
|
47
|
-
@config[:fromdir] = argv.shift
|
48
|
-
@config[:intodir] = argv.shift
|
49
64
|
|
50
|
-
@parser.parse!
|
51
|
-
|
52
65
|
checks
|
53
66
|
process
|
54
67
|
end
|
55
|
-
|
68
|
+
|
56
69
|
def checks
|
57
|
-
unless File.directory? config[:
|
58
|
-
error "Fromdir does not exist"
|
70
|
+
unless File.directory? config[:from]
|
71
|
+
error "Fromdir #{config[:from]} does not exist"
|
59
72
|
end
|
60
73
|
|
61
|
-
unless File.directory? config[:
|
62
|
-
error "Intodir does not exist"
|
74
|
+
unless File.directory? config[:into]
|
75
|
+
error "Intodir #{config[:into]} does not exist"
|
63
76
|
end
|
64
77
|
|
65
|
-
config[:
|
66
|
-
config[:
|
78
|
+
config[:fromdir] = File.realpath config[:from]
|
79
|
+
config[:intodir] = File.realpath config[:into]
|
67
80
|
end
|
68
|
-
|
81
|
+
|
69
82
|
def process
|
70
83
|
unless config[:verbose]
|
71
|
-
progress = ProgressBar.new(
|
84
|
+
progress = ProgressBar.new("Archiver", records.count, stdout)
|
72
85
|
end
|
73
|
-
|
86
|
+
|
74
87
|
records.each do |record|
|
75
88
|
next unless record.process?
|
76
|
-
record.move config[:intodir_real]
|
77
89
|
|
78
90
|
if config[:verbose]
|
79
|
-
|
91
|
+
from = record.path.gsub(/^#{config[:fromdir]}\//, "")
|
92
|
+
into = File.join(record.segment, record.filename)
|
93
|
+
|
94
|
+
stdout.puts "#{from} -> #{into}"
|
80
95
|
else
|
81
96
|
progress.inc
|
82
97
|
end
|
98
|
+
|
99
|
+
record.move config[:intodir]
|
83
100
|
end
|
84
|
-
|
101
|
+
|
85
102
|
if config[:verbose]
|
86
|
-
puts "Processed #{records.count} records!"
|
103
|
+
stdout.puts "Processed #{records.count} records!"
|
87
104
|
else
|
88
105
|
progress.finish
|
89
106
|
end
|
@@ -95,18 +112,18 @@ module Archiver
|
|
95
112
|
def records
|
96
113
|
@records ||= begin
|
97
114
|
rows = []
|
98
|
-
Dir.glob(File.join(config[:
|
115
|
+
Dir.glob(File.join(config[:fromdir], "**", "*")).each do |row|
|
99
116
|
next if File.directory? row
|
100
117
|
rows << Record.new(row)
|
101
118
|
end
|
102
|
-
|
119
|
+
|
103
120
|
rows
|
104
121
|
end
|
105
122
|
end
|
106
|
-
|
123
|
+
|
107
124
|
def error(message)
|
108
|
-
puts "Error: #{message}"
|
109
|
-
puts @parser
|
125
|
+
stderr.puts "Error: #{message}"
|
126
|
+
stderr.puts @parser
|
110
127
|
exit 1
|
111
128
|
end
|
112
129
|
end
|
data/lib/archiver/record.rb
CHANGED
@@ -45,6 +45,10 @@ module Archiver
|
|
45
45
|
return '.mp4'
|
46
46
|
end
|
47
47
|
|
48
|
+
if mime_type.match /^video\/quicktime$/i
|
49
|
+
return '.mov'
|
50
|
+
end
|
51
|
+
|
48
52
|
File.extname(path).downcase
|
49
53
|
end
|
50
54
|
|
@@ -76,11 +80,19 @@ module Archiver
|
|
76
80
|
end
|
77
81
|
|
78
82
|
def image?
|
79
|
-
|
83
|
+
if mime_type.match /^image\/.*/i
|
84
|
+
true
|
85
|
+
else
|
86
|
+
false
|
87
|
+
end
|
80
88
|
end
|
81
89
|
|
82
90
|
def video?
|
83
|
-
|
91
|
+
if mime_type.match /^video\/.*/i
|
92
|
+
true
|
93
|
+
else
|
94
|
+
false
|
95
|
+
end
|
84
96
|
end
|
85
97
|
|
86
98
|
def same?(other)
|
@@ -90,7 +102,7 @@ module Archiver
|
|
90
102
|
checksum == Digest::MD5.hexdigest(File.read(other))
|
91
103
|
end
|
92
104
|
end
|
93
|
-
|
105
|
+
|
94
106
|
def move(directory, counter = 0)
|
95
107
|
destination = File.join(directory, segment, filename(counter))
|
96
108
|
|
@@ -131,4 +143,4 @@ module Archiver
|
|
131
143
|
nil
|
132
144
|
end
|
133
145
|
end
|
134
|
-
end
|
146
|
+
end
|
data/lib/archiver/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: archiver
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -44,13 +44,13 @@ dependencies:
|
|
44
44
|
- !ruby/object:Gem::Version
|
45
45
|
version: 0.10.0
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: whitespace
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
none: false
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version: 2.
|
53
|
+
version: 2.0.4
|
54
54
|
type: :development
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 2.
|
61
|
+
version: 2.0.4
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: yard
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -128,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
128
128
|
version: '0'
|
129
129
|
segments:
|
130
130
|
- 0
|
131
|
-
hash:
|
131
|
+
hash: -4308012420230902379
|
132
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
133
133
|
none: false
|
134
134
|
requirements:
|