rbsync 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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