X-Git-Url: http://club.cc.cmu.edu/~cmccabe/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=names_to_numbers.rb;h=453897644ebde3a7aa27cbd4235459a3f2485bde;hb=bca78978097ea60affff1f4d7c79ba03697a3af4;hp=9439fd1ced83208b04eb8f3c24341b9e5d947769;hpb=1ca7da406efd1f070a74f44102961e23ea22db72;p=cmccabe-bin diff --git a/names_to_numbers.rb b/names_to_numbers.rb index 9439fd1..4538976 100755 --- a/names_to_numbers.rb +++ b/names_to_numbers.rb @@ -19,6 +19,7 @@ class MyOptions opts.dry_run = false opts.num_digits = 2 opts.extension = nil + opts.starting_number = 1 $fu_args = { :verbose => true } opts.preserve_names = false @@ -43,12 +44,23 @@ class MyOptions "Preserve the names while changing the numbers.") do |e| opts.preserve_names = true end + myparser.on("--starting-number NUMBER", "-N", + "The starting number (defaults to 1)") do |e| + opts.starting_number = e.to_i + end + myparser.on("--glob GLOB", "-g", + "Specify the glob expression to use. Example: '*/*.mp3'.") do |d| + opts.glob = d + end end parser.parse!(args) raise "invalid num_digits: #{opts.num_digits}" unless opts.num_digits > 0 - raise "must give an extension" unless opts.extension != nil + raise "must specify an extension" unless opts.extension != nil + if (opts.glob == nil) then + opts.glob = "*.#{$opts.extension}" + end return opts end end @@ -60,9 +72,8 @@ def pow(x, y) end return ret end -#.#{$opts.extension}").sort.each do |f| def file_iter - Dir.glob("*.#{$opts.extension}").sort.each do |f| + Dir.glob($opts.glob).sort.each do |f| yield f end end @@ -76,8 +87,10 @@ def get_file_name(num) end def rename_files(file) - FileUtils.mv(file, "#{get_file_name(1 + $total_files)}.#{$opts.extension}", - $fu_args) + dst="#{get_file_name($opts.starting_number + $total_files)}.#{$opts.extension}" + if (file != dst) then + FileUtils.mv(file, dst, $fu_args) + end $total_files = $total_files + 1 end