bvwack 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module BVWack
2
- VERSION = '0.0.3'
2
+ VERSION = '0.0.4'
3
3
  end
@@ -143,7 +143,7 @@ def clean_up(options)
143
143
  if options[:base_dir]
144
144
  clean_dir = "#{options[:base_dir]}/bvwack-back"
145
145
  else
146
- clean_dir = DEFAULT_CONVERT_BASE_DIR
146
+ clean_dir = DEFAULT_CLEAN_BASE_DIR
147
147
  end
148
148
  if @to_clean.length > 0
149
149
  key = @to_clean.pop
@@ -159,7 +159,7 @@ def dry_clean_up(options)
159
159
  if options[:base_dir]
160
160
  clean_dir = "#{options[:base_dir]}/bvwack-back"
161
161
  else
162
- clean_dir = DEFAULT_CONVERT_BASE_DIR
162
+ clean_dir = DEFAULT_CLEAN_BASE_DIR
163
163
  end
164
164
  if @to_clean.length > 0
165
165
  key = @to_clean.pop
@@ -0,0 +1,25 @@
1
+ # bvwack - Bulk Convert video files
2
+
3
+ Author:: Robie Lutsey
4
+
5
+ Copyright:: Copyright (c) 2012 by Robie Lutsey
6
+ License:: Distributed under the Apache License
7
+
8
+ bvwack (sounds like bivouc) is a dead simple tool for converting logs of video files.
9
+ Currently it supports .avi and .mkv --> iPad compatible .mp4.
10
+
11
+ ## Install
12
+
13
+ gem install bvwack
14
+
15
+ ## Use
16
+
17
+ bvwack -[wc] < -n # -b base-dir >
18
+
19
+ For more help:
20
+
21
+ bvwack --help
22
+
23
+ ## Developing for `bvwack`
24
+
25
+ TODO
@@ -0,0 +1,7 @@
1
+ require "rake/gempackagetask"
2
+
3
+ spec = eval(File.read('bvwack.gemspec'))
4
+
5
+ Rake::GemPackageTask.new(spec) do |pkg|
6
+
7
+ end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+ require 'bvwack'
@@ -0,0 +1,19 @@
1
+ $LOAD_PATH.push File.expand_path("../lib/bvwack", __FILE__)
2
+ require "bvwack_version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "bvwack"
6
+ s.version = BVWack::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Robie Lutsey"]
9
+ s.email = ["robie 0x55D in dec at gmail dit com"]
10
+ s.homepage = ""
11
+ s.summary = %q{bvwack will wack it's way your pile of unconverted video files.'}
12
+ s.description = %q{Super simple utility to help you convert all your videos to iPad ready files.}
13
+ s.requirements = ['ffmpeg and a libx264-slow.ffpreset (possibly in your ~/.ffmpeg/ directory.) Google is your friend.']
14
+ s.rubyforge_project = "bvwack"
15
+ s.required_ruby_version = '>=1.9'
16
+ s.files = Dir['**/**']
17
+ s.executables = ["bvwack"]
18
+ s.has_rdoc = false
19
+ end
@@ -0,0 +1,3 @@
1
+ module BVWack
2
+ VERSION = '0.0.3'
3
+ end
@@ -0,0 +1,248 @@
1
+ require 'optparse'
2
+
3
+ DEFAULT_CONVERT_BASE_DIR = "#{ENV['PWD']}"
4
+ DEFAULT_CLEAN_BASE_DIR = "#{ENV['PWD']}/bvwack-back"
5
+ FFMPEG_OPTS = "-acodec aac -ac 2 -ab 160k -s 1024x768 -vcodec libx264 -vpre slow -vpre iPod640 -vb 1200k -f mp4 -threads 2 -strict experimental"
6
+ help_text = "
7
+ Usage: bvwack <options>
8
+
9
+ Default action is equivalent to bvwack -n 2
10
+
11
+ Options:
12
+ -b BASE_DIR, --base-dir BASE_DIR Set BASE_DIR instead of /Volumes/thundar/media/video
13
+ -d, --dry-run Do a dry run. Prints proposed commands to STDOUT.
14
+ -c, --clean-up Instead of converting, move all converted files to /Volumes/thundar/media/converted/[old-path]
15
+ -n #, --num-files # Number of videos to batch.
16
+ -l, --list_converted Lists files that have been converted but not cleaned. Useful for vierifying successful conversion.
17
+
18
+ Notes: By default this will not work for you. You must change DEFAULT_CONVERT_BASE_DIR
19
+ and DEFAULT_CLEAN_BASE_DIR to something that exists on your system. Do not let
20
+ the clean dir be a subdirectory of base dir or you'll be sad. I have set the
21
+ FFMPEG options to use only 2 threads. This allows me to use my laptop while
22
+ converting things. If you just want to hog through video try setting -threads 0
23
+ in FFMPEG_OPTS. Currently this only works on UNIX-like systems.
24
+
25
+ Requirements: ffmpeg and a libx264-slow.ffpreset (possibly in your ~/.ffmpeg/ directory or in your Cellar if you use brew.) Google is your friend.
26
+
27
+ Examples:
28
+ bvwack -dw Shows proposed commands for 2 videos
29
+ bvwack -w -b somedir/anotherdir -n 5 Converts 5 videos under somedir/anotherdir
30
+ bvwack -c -n 10 Moves 10 already converted mkv or avi files to /Volumes/thundar/medai/converted/[od-path]"
31
+
32
+ @converted_files = { }
33
+ @not_converted_files = { }
34
+ @to_convert = []
35
+
36
+
37
+ options = { }
38
+ option_parser = OptionParser.new do |opts|
39
+ opts.on("-d", "--dry-run") do
40
+ options[:dry_run] = true
41
+ end
42
+
43
+ opts.on("-b BASE_DIR", "--base-dir BASE_DIR") do |base_dir|
44
+ options[:base_dir] = base_dir
45
+ end
46
+
47
+ opts.on("-c", "--clean-up") do
48
+ options[:clean_up] = true
49
+ end
50
+
51
+ opts.on("-n NUM_FILES", "--num-files NUM_FILES", Integer) do |num_files|
52
+ options[:num_files] = num_files
53
+ end
54
+
55
+ opts.on("-h", "--help") do
56
+ options[:help] = true
57
+ end
58
+
59
+ opts.on("-l", "--list-converted") do
60
+ options[:list_converted] = true
61
+ end
62
+
63
+ opts.on("-w", "--wack") do
64
+ options[:wack] = true
65
+ end
66
+ end
67
+
68
+ def echo_base_dirs(options)
69
+ if options[:base_dir]
70
+ puts "\nOperating in #{ options[:base_dir]}"
71
+ puts "I will create #{ options[:base_dir]}/bvwack-back to store converted files if you use clean-up.\n\n"
72
+ else
73
+ puts "\nOperating in #{DEFAULT_CONVERT_BASE_DIR}"
74
+ puts "I will create #{ DEFAULT_CLEAN_BASE_DIR} to store converted files if you use clean-up.\n\n"
75
+ end
76
+ end
77
+
78
+ def convert(path_to_file)
79
+ if path_to_file.class == String
80
+ `ffmpeg -i "#{path_to_file}" #{FFMPEG_OPTS} "#{path_to_file.gsub(/mkv$|avi$/, "ipad.mp4")}"`
81
+ end
82
+ end
83
+
84
+ def dry_run(path_to_file)
85
+ if path_to_file.class == String
86
+ puts "ffmpeg -i #{path_to_file} #{FFMPEG_OPTS} #{path_to_file.gsub(/mkv$|avi$/, "ipad.mp4")}\n\n"
87
+ end
88
+ end
89
+
90
+
91
+ def get_files(args)
92
+ if args[0]
93
+ args.each do |path|
94
+ if File.file?(path)
95
+ @paths << path
96
+ else
97
+ puts "#{path} is not a real file. Skipping. Try single-quoting the path if it is spacey or ugly."
98
+ end
99
+ end
100
+ else
101
+ puts "Specify the file(s) to convert: ./media/dir/dir/file1.mkv <'./media/dir/dir name/file(2).avi'>"
102
+ end
103
+ end
104
+
105
+
106
+ def get_all_files(options)
107
+ if options[:base_dir]
108
+ base_dir = options[:base_dir]
109
+ else
110
+ base_dir = DEFAULT_CONVERT_BASE_DIR
111
+ end
112
+ Dir.chdir(base_dir)
113
+ converted_files = Dir.glob(File.join("**", "*ipad.mp4"))
114
+ converted_files.each do |i|
115
+ if i.include?("bvwack-back")
116
+ next
117
+ else
118
+ @converted_files[File.basename(i, ".ipad.mp4")] = i
119
+ end
120
+ end
121
+
122
+ not_converted_files = Dir.glob(File.join("**", "*.{mkv,avi}"))
123
+ not_converted_files.each do |i|
124
+ if i.include?("bvwack-back")
125
+ next
126
+ else
127
+ if File.basename(i).split(".").last == "mkv"
128
+ @not_converted_files[File.basename(i, ".mkv")] = i
129
+ elsif File.basename(i).split(".").last == "avi"
130
+ @not_converted_files[File.basename(i, ".avi")] = i
131
+ end
132
+ end
133
+ end
134
+ end
135
+
136
+ def get_unconverted_files(converted_files, not_converted_files)
137
+ (not_converted_files.keys - converted_files.keys).each do |key|
138
+ @to_convert << @not_converted_files[key]
139
+ end
140
+ end
141
+
142
+ def clean_up(options)
143
+ if options[:base_dir]
144
+ clean_dir = "#{options[:base_dir]}/bvwack-back"
145
+ else
146
+ clean_dir = DEFAULT_CONVERT_BASE_DIR
147
+ end
148
+ if @to_clean.length > 0
149
+ key = @to_clean.pop
150
+ filename = @not_converted_files[key]
151
+ dirname = File.dirname(@not_converted_files[key])
152
+ `mkdir -p "#{clean_dir}/#{dirname}" && mv "#{filename}" "#{clean_dir}/#{filename}"`
153
+ #else
154
+ # puts "No more files to clean. Hooray!"
155
+ end
156
+ end
157
+
158
+ def dry_clean_up(options)
159
+ if options[:base_dir]
160
+ clean_dir = "#{options[:base_dir]}/bvwack-back"
161
+ else
162
+ clean_dir = DEFAULT_CONVERT_BASE_DIR
163
+ end
164
+ if @to_clean.length > 0
165
+ key = @to_clean.pop
166
+ filename = @not_converted_files[key]
167
+ dirname = File.dirname(@not_converted_files[key])
168
+ puts %Q{mkdir -p "#{clean_dir}/#{dirname}" && mv "#{filename}" "#{clean_dir}/#{filename}"\n\n}
169
+ #else
170
+ # puts "No more files to clean. Hooray!"
171
+ end
172
+ end
173
+
174
+ def list_converted
175
+ begin
176
+ while @to_clean
177
+ key = @to_clean.pop
178
+ converted_filename = @converted_files[key]
179
+ old_filename = @not_converted_files[key]
180
+ dirname = File.dirname(@not_converted_files[key])
181
+ puts "\nConverted file:\n"
182
+ puts %Q{In Directory "#{dirname}"}
183
+ p `ls -lh "#{converted_filename}"`
184
+ p `ls -lh "#{old_filename}"`
185
+ puts %Q{To test run: open "#{converted_filename}"}
186
+ puts "\n\n"
187
+ end
188
+ rescue
189
+ puts("\nNothing to list")
190
+ end
191
+ end
192
+
193
+ option_parser.parse!
194
+ puts options.inspect
195
+
196
+ if options[:num_files]
197
+ limit = (options[:num_files] - 1).to_i
198
+ else
199
+ limit = 2
200
+ end
201
+
202
+ case
203
+ when options[:wack] == TRUE && options[:clean_up] == TRUE
204
+ puts("Error! -w (--wack) and -c (--clean-up) cannot be used simultaneously.")
205
+ when options[:list_converted] == TRUE
206
+ get_all_files(options)
207
+ get_unconverted_files(@converted_files, @not_converted_files)
208
+ @to_clean = @not_converted_files.keys & @converted_files.keys
209
+ list_converted
210
+ when options[:dry_run] == TRUE && options[:clean_up] == TRUE
211
+ get_all_files(options)
212
+ get_unconverted_files(@converted_files, @not_converted_files)
213
+ @to_clean = @not_converted_files.keys & @converted_files.keys
214
+ echo_base_dirs(options)
215
+ (0..limit).each do
216
+ dry_clean_up(options)
217
+ end
218
+ when options[:clean_up] == TRUE
219
+ get_all_files(options)
220
+ get_unconverted_files(@converted_files, @not_converted_files)
221
+ @to_clean = @not_converted_files.keys & @converted_files.keys
222
+ echo_base_dirs(options)
223
+ (0..limit).each do
224
+ #puts "I would have run clean_up"
225
+ clean_up(options)
226
+ end
227
+ when options[:dry_run] == TRUE && options[:wack] == TRUE
228
+ get_all_files(options)
229
+ get_unconverted_files(@converted_files, @not_converted_files)
230
+ @to_clean = @not_converted_files.keys & @converted_files.keys
231
+ echo_base_dirs(options)
232
+ (0..limit).each do |i|
233
+ file = @to_convert[i]
234
+ dry_run(file)
235
+ end
236
+ when options[:wack] == TRUE
237
+ get_all_files(options)
238
+ get_unconverted_files(@converted_files, @not_converted_files)
239
+ @to_clean = @not_converted_files.keys & @converted_files.keys
240
+ echo_base_dirs(options)
241
+ (0..limit).each do |i|
242
+ file = @to_convert[i]
243
+ #puts "I would have run convert(file)"
244
+ convert(file)
245
+ end
246
+ else
247
+ puts help_text
248
+ end
@@ -0,0 +1 @@
1
+ require "bvwack/convert"
@@ -0,0 +1,25 @@
1
+ # bvwack - Bulk Convert video files
2
+
3
+ Author:: Robie Lutsey
4
+
5
+ Copyright:: Copyright (c) 2012 by Robie Lutsey
6
+ License:: Distributed under the Apache License
7
+
8
+ bvwack (sounds like bivouc) is a dead simple tool for converting logs of video files.
9
+ Currently it supports .avi and .mkv --> iPad compatible .mp4.
10
+
11
+ ## Install
12
+
13
+ gem install bvwack
14
+
15
+ ## Use
16
+
17
+ bvwack -[wc] < -n # -b base-dir >
18
+
19
+ For more help:
20
+
21
+ bvwack --help
22
+
23
+ ## Developing for `bvwack`
24
+
25
+ TODO
@@ -0,0 +1,7 @@
1
+ require "rake/gempackagetask"
2
+
3
+ spec = eval(File.read('bvwack.gemspec'))
4
+
5
+ Rake::GemPackageTask.new(spec) do |pkg|
6
+
7
+ end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
+ require 'bvwack'
@@ -0,0 +1,19 @@
1
+ $LOAD_PATH.push File.expand_path("../lib/bvwack", __FILE__)
2
+ require "bvwack_version"
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "bvwack"
6
+ s.version = BVWack::VERSION
7
+ s.platform = Gem::Platform::RUBY
8
+ s.authors = ["Robie Lutsey"]
9
+ s.email = ["robie 0x55D in dec at gmail dit com"]
10
+ s.homepage = ""
11
+ s.summary = %q{bvwack will wack it's way your pile of unconverted video files.'}
12
+ s.description = %q{Super simple utility to help you convert all your videos to iPad ready files.}
13
+ s.requirements = ['ffmpeg and a libx264-slow.ffpreset (possibly in your ~/.ffmpeg/ directory.) Google is your friend.']
14
+ s.rubyforge_project = "bvwack"
15
+ s.required_ruby_version = '>=1.9'
16
+ s.files = Dir['**/**']
17
+ s.executables = ["bvwack"]
18
+ s.has_rdoc = false
19
+ end
@@ -0,0 +1,3 @@
1
+ module BVWack
2
+ VERSION = '0.0.2'
3
+ end
@@ -0,0 +1,252 @@
1
+ require 'optparse'
2
+
3
+ DEFAULT_CONVERT_BASE_DIR = "#{ENV['PWD']}"
4
+ DEFAULT_CLEAN_BASE_DIR = "#{ENV['PWD']}/bvwack-back"
5
+ FFMPEG_OPTS = "-acodec aac -ac 2 -ab 160k -s 1024x768 -vcodec libx264 -vpre slow -vpre iPod640 -vb 1200k -f mp4 -threads 2 -strict experimental"
6
+ help_text = "
7
+ Usage: bvwack <options>
8
+
9
+ Default action is equivalent to bvwack -n 2
10
+
11
+ Options:
12
+ -b BASE_DIR, --base-dir BASE_DIR Set BASE_DIR instead of /Volumes/thundar/media/video
13
+ -d, --dry-run Do a dry run. Prints proposed commands to STDOUT.
14
+ -c, --clean-up Instead of converting, move all converted files to /Volumes/thundar/media/converted/[old-path]
15
+ -n #, --num-files # Number of videos to batch.
16
+ -l, --list_converted Lists files that have been converted but not cleaned. Useful for vierifying successful conversion.
17
+
18
+ Notes: By default this will not work for you. You must change DEFAULT_CONVERT_BASE_DIR
19
+ and DEFAULT_CLEAN_BASE_DIR to something that exists on your system. Do not let
20
+ the clean dir be a subdirectory of base dir or you'll be sad. I have set the
21
+ FFMPEG options to use only 2 threads. This allows me to use my laptop while
22
+ converting things. If you just want to hog through video try setting -threads 0
23
+ in FFMPEG_OPTS. Currently this only works on UNIX-like systems.
24
+
25
+ Requirements: ffmpeg and a libx264-slow.ffpreset (possibly in your ~/.ffmpeg/ directory or in your Cellar if you use brew.) Google is your friend.
26
+
27
+ Examples:
28
+ bvwack -dw Shows proposed commands for 2 videos
29
+ bvwack -w -b somedir/anotherdir -n 5 Converts 5 videos under somedir/anotherdir
30
+ bvwack -c -n 10 Moves 10 already converted mkv or avi files to /Volumes/thundar/medai/converted/[od-path]"
31
+
32
+ @converted_files = { }
33
+ @not_converted_files = { }
34
+ @to_convert = []
35
+
36
+
37
+ options = { }
38
+ option_parser = OptionParser.new do |opts|
39
+ opts.on("-d", "--dry-run") do
40
+ options[:dry_run] = true
41
+ end
42
+
43
+ opts.on("-b BASE_DIR", "--base-dir BASE_DIR") do |base_dir|
44
+ options[:base_dir] = base_dir
45
+ end
46
+
47
+ opts.on("-c", "--clean-up") do
48
+ options[:clean_up] = true
49
+ end
50
+
51
+ opts.on("-n NUM_FILES", "--num-files NUM_FILES", Integer) do |num_files|
52
+ options[:num_files] = num_files
53
+ end
54
+
55
+ opts.on("-h", "--help") do
56
+ options[:help] = true
57
+ end
58
+
59
+ opts.on("-l", "--list-converted") do
60
+ options[:list_converted] = true
61
+ end
62
+
63
+ opts.on("-w", "--wack") do
64
+ options[:wack] = true
65
+ end
66
+ end
67
+
68
+ def echo_base_dirs(options)
69
+ if options[:base_dir]
70
+ puts "\nOperating in #{ options[:base_dir]}"
71
+ puts "I will create #{ options[:base_dir]}/bvwack-back to store converted files if you use clean-up.\n\n"
72
+ else
73
+ puts "\nOperating in #{DEFAULT_CONVERT_BASE_DIR}"
74
+ puts "I will create #{ DEFAULT_CLEAN_BASE_DIR} to store converted files if you use clean-up.\n\n"
75
+ end
76
+ end
77
+
78
+ def convert(path_to_file)
79
+ if path_to_file.class == String
80
+ `ffmpeg -i "#{path_to_file}" #{FFMPEG_OPTS} "#{path_to_file.gsub(/mkv$|avi$/, "ipad.mp4")}"`
81
+ end
82
+ end
83
+
84
+ def dry_run(path_to_file)
85
+ if path_to_file.class == String
86
+ puts "ffmpeg -i #{path_to_file} #{FFMPEG_OPTS} #{path_to_file.gsub(/mkv$|avi$/, "ipad.mp4")}\n\n"
87
+ end
88
+ end
89
+
90
+
91
+ def get_files(args)
92
+ if args[0]
93
+ args.each do |path|
94
+ if File.file?(path)
95
+ @paths << path
96
+ else
97
+ puts "#{path} is not a real file. Skipping. Try single-quoting the path if it is spacey or ugly."
98
+ end
99
+ end
100
+ else
101
+ puts "Specify the file(s) to convert: ./media/dir/dir/file1.mkv <'./media/dir/dir name/file(2).avi'>"
102
+ end
103
+ end
104
+
105
+
106
+ def get_all_files(options)
107
+ if options[:base_dir]
108
+ base_dir = options[:base_dir]
109
+ else
110
+ base_dir = DEFAULT_CONVERT_BASE_DIR
111
+ end
112
+ Dir.chdir(base_dir)
113
+ converted_files = Dir.glob(File.join("**", "*ipad.mp4"))
114
+ converted_files.each do |i|
115
+ if i.include?("bvwack-back")
116
+ next
117
+ else
118
+ @converted_files[File.basename(i, ".ipad.mp4")] = i
119
+ end
120
+ end
121
+
122
+ not_converted_files = Dir.glob(File.join("**", "*.{mkv,avi}"))
123
+ not_converted_files.each do |i|
124
+ if i.include?("bvwack-back")
125
+ next
126
+ else
127
+ if File.basename(i).split(".").last == "mkv"
128
+ @not_converted_files[File.basename(i, ".mkv")] = i
129
+ elsif File.basename(i).split(".").last == "avi"
130
+ @not_converted_files[File.basename(i, ".avi")] = i
131
+ end
132
+ end
133
+ end
134
+ end
135
+
136
+ def get_unconverted_files(converted_files, not_converted_files)
137
+ (not_converted_files.keys - converted_files.keys).each do |key|
138
+ @to_convert << @not_converted_files[key]
139
+ end
140
+ end
141
+
142
+ def clean_up(options)
143
+ if options[:base_dir]
144
+ clean_dir = "#{options[:base_dir]}/bvwack-back"
145
+ else
146
+ clean_dir = DEFAULT_CONVERT_BASE_DIR
147
+ end
148
+ if @to_clean.length > 0
149
+ key = @to_clean.pop
150
+ filename = @not_converted_files[key]
151
+ dirname = File.dirname(@not_converted_files[key])
152
+ `mkdir -p "#{clean_dir}/#{dirname}" && mv "#{filename}" "#{clean_dir}/#{filename}"`
153
+ #else
154
+ # puts "No more files to clean. Hooray!"
155
+ end
156
+ end
157
+
158
+ def dry_clean_up(options)
159
+ if options[:base_dir]
160
+ clean_dir = "#{options[:base_dir]}/bvwack-back"
161
+ else
162
+ clean_dir = DEFAULT_CONVERT_BASE_DIR
163
+ end
164
+ if @to_clean.length > 0
165
+ key = @to_clean.pop
166
+ filename = @not_converted_files[key]
167
+ dirname = File.dirname(@not_converted_files[key])
168
+ print "\n\ndirname: "
169
+ p dirname
170
+ print "\n\nclean_dir: "
171
+ p clean_dir
172
+ puts %Q{mkdir -p "#{clean_dir}/#{dirname}" && mv "#{filename}" "#{clean_dir}/#{filename}"\n\n}
173
+ #else
174
+ # puts "No more files to clean. Hooray!"
175
+ end
176
+ end
177
+
178
+ def list_converted
179
+ begin
180
+ while @to_clean
181
+ key = @to_clean.pop
182
+ converted_filename = @converted_files[key]
183
+ old_filename = @not_converted_files[key]
184
+ dirname = File.dirname(@not_converted_files[key])
185
+ puts "\nConverted file:\n"
186
+ puts %Q{In Directory "#{dirname}"}
187
+ p `ls -lh "#{converted_filename}"`
188
+ p `ls -lh "#{old_filename}"`
189
+ puts %Q{To test run: open "#{converted_filename}"}
190
+ puts "\n\n"
191
+ end
192
+ rescue
193
+ puts("\nNothing to list")
194
+ end
195
+ end
196
+
197
+ option_parser.parse!
198
+ puts options.inspect
199
+
200
+ if options[:num_files]
201
+ limit = (options[:num_files] - 1).to_i
202
+ else
203
+ limit = 2
204
+ end
205
+
206
+ case
207
+ when options[:wack] == TRUE && options[:clean_up] == TRUE
208
+ puts("Error! -w (--wack) and -c (--clean-up) cannot be used simultaneously.")
209
+ when options[:list_converted] == TRUE
210
+ get_all_files(options)
211
+ get_unconverted_files(@converted_files, @not_converted_files)
212
+ @to_clean = @not_converted_files.keys & @converted_files.keys
213
+ list_converted
214
+ when options[:dry_run] == TRUE && options[:clean_up] == TRUE
215
+ get_all_files(options)
216
+ get_unconverted_files(@converted_files, @not_converted_files)
217
+ @to_clean = @not_converted_files.keys & @converted_files.keys
218
+ echo_base_dirs(options)
219
+ (0..limit).each do
220
+ dry_clean_up(options)
221
+ end
222
+ when options[:clean_up] == TRUE
223
+ get_all_files(options)
224
+ get_unconverted_files(@converted_files, @not_converted_files)
225
+ @to_clean = @not_converted_files.keys & @converted_files.keys
226
+ echo_base_dirs(options)
227
+ (0..limit).each do
228
+ #puts "I would have run clean_up"
229
+ clean_up(options)
230
+ end
231
+ when options[:dry_run] == TRUE && options[:wack] == TRUE
232
+ get_all_files(options)
233
+ get_unconverted_files(@converted_files, @not_converted_files)
234
+ @to_clean = @not_converted_files.keys & @converted_files.keys
235
+ echo_base_dirs(options)
236
+ (0..limit).each do |i|
237
+ file = @to_convert[i]
238
+ dry_run(file)
239
+ end
240
+ when options[:wack] == TRUE
241
+ get_all_files(options)
242
+ get_unconverted_files(@converted_files, @not_converted_files)
243
+ @to_clean = @not_converted_files.keys & @converted_files.keys
244
+ echo_base_dirs(options)
245
+ (0..limit).each do |i|
246
+ file = @to_convert[i]
247
+ #puts "I would have run convert(file)"
248
+ convert(file)
249
+ end
250
+ else
251
+ puts help_text
252
+ end
@@ -0,0 +1 @@
1
+ require "bvwack/convert"
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bvwack
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-21 00:00:00.000000000 Z
12
+ date: 2012-02-22 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Super simple utility to help you convert all your videos to iPad ready
15
15
  files.
@@ -33,6 +33,22 @@ files:
33
33
  - pkg/bvwack-0.0.2/Rakefile
34
34
  - pkg/bvwack-0.0.2/README.md
35
35
  - pkg/bvwack-0.0.2.gem
36
+ - pkg/bvwack-0.0.3/bin/bvwack
37
+ - pkg/bvwack-0.0.3/bvwack.gemspec
38
+ - pkg/bvwack-0.0.3/lib/bvwack/bvwack_version.rb
39
+ - pkg/bvwack-0.0.3/lib/bvwack/convert.rb
40
+ - pkg/bvwack-0.0.3/lib/bvwack.rb
41
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2/bin/bvwack
42
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2/bvwack.gemspec
43
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2/lib/bvwack/bvwack_version.rb
44
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2/lib/bvwack/convert.rb
45
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2/lib/bvwack.rb
46
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2/Rakefile
47
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2/README.md
48
+ - pkg/bvwack-0.0.3/pkg/bvwack-0.0.2.gem
49
+ - pkg/bvwack-0.0.3/Rakefile
50
+ - pkg/bvwack-0.0.3/README.md
51
+ - pkg/bvwack-0.0.3.gem
36
52
  - Rakefile
37
53
  - README.md
38
54
  homepage: ''