lib/qdumpfs.rb in qdumpfs-1.6.0 vs lib/qdumpfs.rb in qdumpfs-1.6.1

- old
+ new

@@ -180,20 +180,21 @@ # src: コピー元ディレクトリ ex) i:/from/home # latest: 最新のバックアップディレクトリ ex)j:/to/backup1/2019/05/09/home # today: 差分バックアップ先ディレクトリ ex)j:/to/backup1/2019/05/10/home dirs = {}; QdumpfsFind.find(@opt.logger, src) do |s| # path of the source file - if @opt.matcher.exclude?(s) - if File.lstat(s).directory? then Find.prune() else next end - end - # バックアップ元ファイルのパスからディレクトリ部分を削除 - r = make_relative_path(s, src) - # 既存バックアップファイルのパス - l = File.join(latest, r) # path of the latest snapshot - # 新規バックアップファイルのパス - t = File.join(today, r) # path of the today's snapshot begin + if @opt.matcher.exclude?(s) + if File.lstat(s).directory? then Find.prune else next end + end + # バックアップ元ファイルのパスからディレクトリ部分を削除 + r = make_relative_path(s, src) + # 既存バックアップファイルのパス + l = File.join(latest, r) # path of the latest snapshot + # 新規バックアップファイルのパス + t = File.join(today, r) # path of the today's snapshot + # ファイルのアップデート update_file(s, l, t) dirs[t] = File.stat(s) if File.ftype(s) == "directory" rescue => e report_error(s, e.message) @@ -206,16 +207,17 @@ end def recursive_copy(src, dst) dirs = {} QdumpfsFind.find(@opt.logger, src) do |s| - if @opt.matcher.exclude?(s) - if File.lstat(s).directory? then Find.prune() else next end - end - r = make_relative_path(s, src) - t = File.join(dst, r) begin + if @opt.matcher.exclude?(s) + if File.lstat(s).directory? then Find.prune else next end + end + r = make_relative_path(s, src) + t = File.join(dst, r) + type = detect_type(s) report(type, s) next if @opt.dry_run case type when "directory" @@ -226,11 +228,11 @@ File.force_symlink(File.readlink(s), t) when "unsupported" # just ignore it else raise "#{type}: shouldn't be reached here" - end + end chown_if_root(type, s, t) dirs[t] = File.stat(s) if File.ftype(s) == "directory" rescue => e report_error(s, e.message) @error_files << [s, e.message] @@ -422,21 +424,21 @@ def verify file = @opt.open_verifyfile start_time = Time.now - add_log("##### verify start #{fmt(start_time)} #####") + log("##### verify start #{fmt(start_time)} #####") src_count, dst_count = do_verify(src, dst) fputs(file, "#{src}: #{src_count}") fputs(file, "#{dst}: #{dst_count}") result = src_count == dst_count fputs(file, "result=#{result}") end_time = Time.now diff = time_diff(start_time, end_time) - add_log("##### list end #{fmt(end_time)} diff=#{diff} #####") + log("##### list end #{fmt(end_time)} diff=#{diff} #####") file.close end def list