mass_renamer 0.9.1 → 1.0.0
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.
- checksums.yaml +4 -4
- data/lib/renamer/command_line.rb +4 -1
- data/lib/renamer/driver.rb +43 -4
- data/lib/renamer/free.rb +1 -1
- data/lib/renamer/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3257e201ad3cb42e4ccebbf0a58630293c9cfd2b
|
4
|
+
data.tar.gz: 28761b844a71a4167214732aa50b1f8ff15f2ec3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b8838efa35da98760cc9f3dfe8ba5cb7b6e0e615433becdeb3a7b25e3f968b08ed5001c2824fe7c9c89f0f9745950a0d33089f72d003004a6d3db2fb6494617
|
7
|
+
data.tar.gz: 4b2ffea33edd18d6ec0358e59e9afcb742dfcc1064ba24866b39996b3c6be8bef44ef0aa68c3af793da020148921f581fb9a9cc2f7f11141b38332336e04563a
|
data/lib/renamer/command_line.rb
CHANGED
@@ -37,7 +37,10 @@ module Renamer
|
|
37
37
|
opt.on('-r', '--recursive', 'Recurse into subdirectories') do
|
38
38
|
opts[:recursive] = true
|
39
39
|
end
|
40
|
-
opt.on('-
|
40
|
+
opt.on('-F', '--force', 'Don\'t ask if target exists') do
|
41
|
+
opts[:force] = true
|
42
|
+
end
|
43
|
+
opt.on('-D', '--no-delete', 'Completely disables delete function') do
|
41
44
|
opts[:no_delete] = true
|
42
45
|
end
|
43
46
|
opt.on('-v', '--verify', 'Ask for consent before doing each action') do
|
data/lib/renamer/driver.rb
CHANGED
@@ -5,11 +5,12 @@ module Renamer
|
|
5
5
|
|
6
6
|
class Filesystem_Driver
|
7
7
|
|
8
|
-
def initialize ask: , dry:, verbose:, no_delete:
|
8
|
+
def initialize ask: , dry:, verbose:, no_delete:, force:
|
9
9
|
@ask = ask
|
10
10
|
@dry = dry
|
11
11
|
@verbose = verbose
|
12
12
|
@no_delete = no_delete
|
13
|
+
@force = force
|
13
14
|
end
|
14
15
|
|
15
16
|
def ask msg, from, to = nil
|
@@ -17,6 +18,25 @@ module Renamer
|
|
17
18
|
gets.chomp.downcase == ?y
|
18
19
|
end
|
19
20
|
|
21
|
+
def overwrite to
|
22
|
+
loop do
|
23
|
+
print "Overwrite #{to}? [Y(es)/N(o)/A(bort)]: "
|
24
|
+
case gets.chomp.downcase
|
25
|
+
when ?a
|
26
|
+
puts "Aborting."
|
27
|
+
return :abort
|
28
|
+
when ?y
|
29
|
+
return :yes
|
30
|
+
when ?n
|
31
|
+
puts "Not overwriting, skipping."
|
32
|
+
return :no
|
33
|
+
else
|
34
|
+
puts "Unexpected answer, try again."
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
20
40
|
def remove! from
|
21
41
|
raise "Deletes were disables." if @no_delete
|
22
42
|
begin
|
@@ -39,6 +59,15 @@ module Renamer
|
|
39
59
|
return unless ask("Copy", from, to)
|
40
60
|
end
|
41
61
|
return if @dry
|
62
|
+
if File.exist?(to) and not @force
|
63
|
+
case overwrite(to)
|
64
|
+
when :abort
|
65
|
+
exit 1
|
66
|
+
when :no
|
67
|
+
return
|
68
|
+
when :yes
|
69
|
+
end
|
70
|
+
end
|
42
71
|
FileUtils.mkdir_p File.dirname(to)
|
43
72
|
FileUtils.copy_entry from, to, preserve: true, remove_destination: true
|
44
73
|
rescue StandardError => e
|
@@ -54,6 +83,15 @@ module Renamer
|
|
54
83
|
return unless ask("Move", from, to)
|
55
84
|
end
|
56
85
|
return if @dry
|
86
|
+
if File.exist?(to) and not @force
|
87
|
+
case overwrite(to)
|
88
|
+
when :abort
|
89
|
+
exit 1
|
90
|
+
when :no
|
91
|
+
return
|
92
|
+
when :yes
|
93
|
+
end
|
94
|
+
end
|
57
95
|
FileUtils.mkdir_p File.dirname(to)
|
58
96
|
File.rename from, to
|
59
97
|
rescue StandardError => e
|
@@ -87,7 +125,8 @@ module Renamer
|
|
87
125
|
ask: @opts[:ask],
|
88
126
|
dry: @opts[:dry],
|
89
127
|
verbose: @opts[:verbose],
|
90
|
-
no_delete: @opts[:no_delete]
|
128
|
+
no_delete: @opts[:no_delete],
|
129
|
+
force: @opts[:force]
|
91
130
|
)
|
92
131
|
|
93
132
|
renames.each do |from, to|
|
@@ -103,8 +142,8 @@ module Renamer
|
|
103
142
|
next if from == to
|
104
143
|
fd.move! from, to
|
105
144
|
else
|
106
|
-
to.each { |to| fd.copy! from, to }
|
107
|
-
fd.remove! from
|
145
|
+
to.each { |to| fd.copy! from, to unless from == to }
|
146
|
+
fd.remove! from unless to.include? from
|
108
147
|
end
|
109
148
|
rescue
|
110
149
|
next if @opts[:keep_going]
|
data/lib/renamer/free.rb
CHANGED
data/lib/renamer/version.rb
CHANGED