rbsync 0.0.7 → 0.0.8
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.
- data/VERSION +1 -1
- data/lib/rbsync.rb +26 -2
- data/rbsync.gemspec +1 -1
- data/test/test_rbsync.rb +82 -0
- metadata +3 -3
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.8
|
data/lib/rbsync.rb
CHANGED
@@ -96,9 +96,11 @@ class RbSync
|
|
96
96
|
files = Dir.glob "./**/*", File::FNM_DOTMATCH
|
97
97
|
exclude_files =[]
|
98
98
|
exclude_files = excludes.map{|g| Dir.glob "./**/#{g}",File::FNM_DOTMATCH }
|
99
|
+
#files.each{|e|pp [e, File.directory?(e)] }
|
100
|
+
files = files.reject{|e| File.directory?(e) }
|
99
101
|
files = files - exclude_files.flatten
|
100
102
|
}
|
101
|
-
files.reject{|e| [".",".."].any?{|s| s== File::basename(e) }}
|
103
|
+
files = files.reject{|e| [".",".."].any?{|s| s== File::basename(e) }}
|
102
104
|
end
|
103
105
|
# compare two directory by name and FileUtis,cmp
|
104
106
|
def find_files(src,dest,options)
|
@@ -299,7 +301,6 @@ class RbSync
|
|
299
301
|
self.copy_r(files)
|
300
302
|
end
|
301
303
|
def copy_r(files)
|
302
|
-
##todo 進捗を調べる.
|
303
304
|
if(@conf[:progress])
|
304
305
|
puts ("copy #{files.size} files")
|
305
306
|
$stdout.flush
|
@@ -312,6 +313,7 @@ class RbSync
|
|
312
313
|
end
|
313
314
|
#main
|
314
315
|
copy_thread = Thread.start{
|
316
|
+
FileUtils.mkdir_p File.dirname(e[1]) unless File.exists?(File.dirname(e[1]))
|
315
317
|
FileUtils.copy( e[0] , e[1] ,{:preserve=>self.preserve?,:verbose=>self.verbose? } )
|
316
318
|
}
|
317
319
|
#progress of each file
|
@@ -467,3 +469,25 @@ class ProgressBar
|
|
467
469
|
end
|
468
470
|
end
|
469
471
|
|
472
|
+
|
473
|
+
|
474
|
+
if __FILE__ == $0
|
475
|
+
require 'tmpdir'
|
476
|
+
require 'find'
|
477
|
+
require 'pp'
|
478
|
+
Dir.mktmpdir('goo') do |dir|
|
479
|
+
Dir.chdir dir do
|
480
|
+
Dir.mkdir("old")
|
481
|
+
Dir.mkdir("new")
|
482
|
+
open("./old/test.txt", "w+"){|f| 10.times{f.puts("test")}}
|
483
|
+
time1 = Time.local(2008, 1, 1, 1, 1, 1)
|
484
|
+
File::utime( time1 , time1, "./old/test.txt")
|
485
|
+
rsync = RbSync.new
|
486
|
+
rsync.sync("old","new",{:update=>true})
|
487
|
+
# timestamp is preserved?
|
488
|
+
p File.mtime("./new/test.txt") == time1
|
489
|
+
p File.atime("./new/test.txt") == time1
|
490
|
+
end
|
491
|
+
end
|
492
|
+
puts :END
|
493
|
+
end
|
data/rbsync.gemspec
CHANGED
data/test/test_rbsync.rb
CHANGED
@@ -166,5 +166,87 @@ class TestRbsync < Test::Unit::TestCase
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
end
|
169
|
+
def test_sync_old_to_new_twice
|
170
|
+
Dir.mktmpdir('foo') do |dir|
|
171
|
+
Dir.chdir dir do
|
172
|
+
Dir.mkdir("old")
|
173
|
+
Dir.mkdir("new")
|
174
|
+
open("./old/test.txt", "w+"){|f| 10.times{f.puts("test")}}
|
175
|
+
rsync = RbSync.new
|
176
|
+
rsync.sync("old","new")
|
177
|
+
rsync.sync("old","new")
|
178
|
+
assert FileUtils.cmp("old/test.txt","new/test.txt")
|
179
|
+
files = Dir.glob "./new/**/*"
|
180
|
+
assert files.size == 1
|
181
|
+
end
|
182
|
+
end
|
183
|
+
end
|
184
|
+
def test_sync_old_to_new_sub_dir
|
185
|
+
Dir.mktmpdir('foo') do |dir|
|
186
|
+
Dir.chdir dir do
|
187
|
+
Dir.mkdir("old")
|
188
|
+
Dir.mkdir("old/dir1")
|
189
|
+
Dir.mkdir("new")
|
190
|
+
open("./old/dir1/test.txt", "w+"){|f| 10.times{f.puts("test")}}
|
191
|
+
rsync = RbSync.new
|
192
|
+
rsync.sync("old","new")
|
193
|
+
assert FileUtils.cmp("old/dir1/test.txt","new/dir1/test.txt")
|
194
|
+
files = Dir.glob "./new/**/*"
|
195
|
+
files = files.reject{|e| File.directory?(e) }
|
196
|
+
assert files.size == 1
|
197
|
+
end
|
198
|
+
end
|
199
|
+
end
|
200
|
+
def test_sync_old_to_new_sub_dir2
|
201
|
+
Dir.mktmpdir('foo') do |dir|
|
202
|
+
Dir.chdir dir do
|
203
|
+
Dir.mkdir("old")
|
204
|
+
Dir.mkdir("old/dir1")
|
205
|
+
Dir.mkdir("new")
|
206
|
+
open("./old/dir1/test.txt", "w+"){|f| 10.times{f.puts("test")}}
|
207
|
+
open("./old/dir1/test2.txt", "w+"){|f| 10.times{f.puts("test")}}
|
208
|
+
rsync = RbSync.new
|
209
|
+
rsync.sync("old","new")
|
210
|
+
assert FileUtils.cmp("old/dir1/test.txt","new/dir1/test.txt")
|
211
|
+
files = Dir.glob "./new/**/*"
|
212
|
+
files = files.reject{|e| File.directory?(e) }
|
213
|
+
assert files.size == 2
|
214
|
+
end
|
215
|
+
end
|
216
|
+
end
|
217
|
+
def test_sync_preserve_time_stamp_1
|
218
|
+
Dir.mktmpdir('goo') do |dir|
|
219
|
+
Dir.chdir dir do
|
220
|
+
Dir.mkdir("old")
|
221
|
+
Dir.mkdir("new")
|
222
|
+
open("./old/test.txt", "w+"){|f| 10.times{f.puts("test")}}
|
223
|
+
open("./new/test.txt", "w+"){|f| 10.times{f.puts("different")}}
|
224
|
+
time1 = Time.local(2018, 1, 1, 1, 1, 1)
|
225
|
+
time2 = Time.local(2008, 1, 1, 1, 1, 1)
|
226
|
+
# //old/test.txt is more newer than ./new/test.txt
|
227
|
+
File::utime( time1 , time1, "./old/test.txt")
|
228
|
+
File::utime( time2 , time2, "./new/test.txt")
|
229
|
+
rsync = RbSync.new
|
230
|
+
rsync.sync("old","new",{:update=>true})
|
231
|
+
assert File.atime("./new/test.txt") == time1
|
232
|
+
end
|
233
|
+
end
|
234
|
+
end
|
235
|
+
def test_sync_preserve_time_stamp_2
|
236
|
+
Dir.mktmpdir('goo') do |dir|
|
237
|
+
Dir.chdir dir do
|
238
|
+
Dir.mkdir("old")
|
239
|
+
Dir.mkdir("new")
|
240
|
+
open("./old/test.txt", "w+"){|f| 10.times{f.puts("test")}}
|
241
|
+
time1 = Time.local(2008, 1, 1, 1, 1, 1)
|
242
|
+
File::utime( time1 , time1, "./old/test.txt")
|
243
|
+
rsync = RbSync.new
|
244
|
+
rsync.sync("old","new",{:update=>true})
|
245
|
+
# timestamp is preserved?
|
246
|
+
assert File.mtime("./new/test.txt") == time1
|
247
|
+
assert File.atime("./new/test.txt") == time1
|
248
|
+
end
|
249
|
+
end
|
250
|
+
end
|
169
251
|
|
170
252
|
end
|
metadata
CHANGED