blob: 11886534397200e89f8c91541468ec76fee55372 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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
|