DaxSoft

Backup 3.0

Mar 12th, 2014
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #==============================================================================
  2. # • Backup
  3. #==============================================================================
  4. # Author: Dax
  5. # Version: 3.0
  6. # Site: www.dax-soft.weebly.com
  7. # Requires: N/A
  8. #==============================================================================
  9. # • Description
  10. #------------------------------------------------------------------------------
  11. # Make a backup of all direction of your project.
  12. #==============================================================================
  13. # • How to use:
  14. #------------------------------------------------------------------------------
  15. # Backup.call | Make a backup just of the paste Data.
  16. # Backup.call(true) | Make a backup complete.
  17. #==============================================================================
  18. module Backup
  19. extend self
  20. #----------------------------------------------------------------------------
  21. # • Const.
  22. #----------------------------------------------------------------------------
  23. DIR = "./Backup"
  24. COPYFILE = ->(*args) { Win32API.new('kernel32', 'CopyFile', 'ppl', 'l').call(*args) }
  25. #----------------------------------------------------------------------------
  26. # • Call.
  27. #----------------------------------------------------------------------------
  28. def call(complete=false)
  29. return unless $TEST
  30. Dir.mkdir(DIR) unless FileTest.directory? DIR
  31. complete ? call_complete : call_data
  32. end
  33. private
  34. #----------------------------------------------------------------------------
  35. # • Call of the Data.
  36. #----------------------------------------------------------------------------
  37. def call_data
  38. Dir.mkdir(DIR + "/Data") unless FileTest.directory? DIR + "/Data"
  39. Dir.glob("./Data/*").each { |_data| COPYFILE[_data, DIR + _data, 1] }
  40. end
  41. #----------------------------------------------------------------------------
  42. # • Call Complete.
  43. #----------------------------------------------------------------------------
  44. def call_complete
  45. Dir.glob(File.join("**", "**")).each { |_backup|
  46. next if _backup.match(/Backup/im)
  47. _dir = FileTest.directory?(_backup) ? _backup : _backup.gsub!(/\/\.(\w+)/, "")
  48. Dir.mkdir(DIR + "/#{_dir}") unless FileTest.directory? DIR + "/#{_dir}"
  49. COPYFILE[_backup, DIR + "/" + _backup, 1]
  50. }
  51. end
  52. end
  53.  
  54. Backup.call true
Advertisement
Add Comment
Please, Sign In to add comment