bvwack 0.0.3 → 0.0.4

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.
@@ -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: ''