Add a script changing file extensions
This commit is contained in:
29
bin/rename.rb
Executable file
29
bin/rename.rb
Executable file
@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env ruby
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public License,
|
||||
# v. 2.0. If a copy of the MPL was not distributed with this file, You can
|
||||
# obtain one at https://mozilla.org/MPL/2.0/. -}
|
||||
|
||||
# frozen_string_literal: true
|
||||
|
||||
require 'fileutils'
|
||||
|
||||
if ARGV.length == 3
|
||||
Dir.glob("#{ARGV[0]}/**/*.#{ARGV[1]}").each do |original|
|
||||
new_name = original.sub /\.#{Regexp.escape(ARGV[1])}$/, ARGV[2]
|
||||
|
||||
puts "Renaming #{original} to #{new_name}."
|
||||
FileUtils.mv original, new_name
|
||||
end
|
||||
else
|
||||
$stderr.puts <<~USAGE
|
||||
Usage:
|
||||
#{$0} directory old_extension new_extension
|
||||
|
||||
The directory is searched recursively.
|
||||
The old and new extensions should not begin with a dot (.).
|
||||
|
||||
Example: #{$0} src ce.vue vue
|
||||
Changes the extensions of all files matching src/**/*.ce.vue to .vue.
|
||||
USAGE
|
||||
exit 1
|
||||
end
|
Reference in New Issue
Block a user