Advertisement
Fehu

Prism Standalone - Auto Backup

Feb 28th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 10.75 KB | None | 0 0
  1. #╔═════════════════════════════════════════════════════════════════════════════╗
  2. #║ ҉ Prism Standalone - Auto Backup                                            ║
  3. #╠═════════════════════════════════════════════════════════════════════════════╣
  4. #║ Autor:  Alisson                                                             ║
  5. #║ Data:   28/02/2017                                                          ║
  6. #║ Versão: 1.0                                                                 ║
  7. #╠═════════════════════════════════════════════════════════════════════════════╣
  8. #║ Histórico:                                                                  ║
  9. #║   → 1.5 - Bugs Corrigidos                                                   ║
  10. #║   → 1.0 - Lançado                                                           ║
  11. #╠═════════════════════════════════════════════════════════════════════════════╣
  12. #║ Requer: Prism.data na pasta raíz do projeto.                                ║
  13. #╠═════════════════════════════════════════════════════════════════════════════╣
  14. #║ Informações:                                                                ║
  15. #║ Este script é um utilitário para realizar um backup do seu projeto.         ║
  16. #║ Ele faz um backup automaticamente das pastas desejadas.                     ║
  17. #╠═════════════════════════════════════════════════════════════════════════════╣
  18. #║ Instruções:                                                                 ║
  19. #║ Para usar esse script, você precisa do arquivo Prism.data que foi           ║
  20. #║ disponibilizado junto desse script. As instruções de instalação do          ║
  21. #║ Prism.data estão contidas no topico onde este tópico foi disponibilizado.   ║
  22. #╚═════════════════════════════════════════════════════════════════════════════╝
  23. module Prism::STANDALONE::AUTO_BACKUP
  24.   extend self
  25.  
  26.  #╔═══════════════════════════════════════════════════════════════════════════╗
  27.  #║ ♦ Configuração                                                            ║
  28.  #╚═══════════════════════════════════════════════════════════════════════════╝
  29.  
  30.   # A frequência na qual os backup serão realizados.
  31.   # 0 - Toda vez que o jogo for iniciado.
  32.   # 1 - Depois de uma hora desde o último backup.
  33.   # 2 - Depois de um dia desde o último backup.
  34.   # 3 - Depois de uma semana desde o último backup.
  35.   # 4 - Depois de um mês desde o último backup.
  36.   Frequency = 0
  37.  
  38.   # Uma lista com as pastas do projeto que serão salvas.
  39.   # Utilize / para separar os diretórios.
  40.   # Não adicione uma vírgula ao último item desta lista.
  41.   Directory = [
  42.     "Audio",
  43.     "Data",
  44.     "Graphics/Pictures"
  45.   ]
  46.  
  47.   # Configuração das pastas.
  48.   Conf = {
  49.     # Diretório onde o backup será salvo. Precisa terminar com /.
  50.     :directory => "C:/Users/alisson/Desktop/",
  51.    
  52.     # Nome da pasta onde o backup será salvo.
  53.     :folder_name => "Prism Backup"
  54.   }
  55.  
  56.  #╔═══════════════════════════════════════════════════════════════════════════╗
  57.  #║ ♦ Fim das Configurações                                                   ║
  58.  #╠═══════════════════════════════════════════════════════════════════════════╣
  59.  #║ Editar algo após aqui pode prejudicar o funcionamento do script.          ║
  60.  #║ Mexa apenas se souber o que está fazendo.                                 ║
  61.  #╚═══════════════════════════════════════════════════════════════════════════╝
  62.  
  63.  #┌───────────────────────────────────────────────────────────────────────────┐
  64.  #│ ♦ make_backup                                                             │
  65.  #└───────────────────────────────────────────────────────────────────────────┘
  66.   def make_backup
  67.     path = Conf[:directory]
  68.     name = Conf[:folder_name]
  69.     abs_path = path.gsub("/") { "\\" }
  70.     proj_path = Dir.getwd.gsub("/") { "\\" }
  71.     manager = Prism::File_Management
  72.    
  73.     Dir.mkdir(path + name) if !Dir.exists?(path + name)
  74.     Directory.each {|directory|
  75.       src = "#{proj_path}\\#{directory}"
  76.       dest = "#{abs_path + name}\\#{directory}"
  77.       manager.copy_folder(src, dest)
  78.     }
  79.    
  80.   end
  81.  
  82.  #┌───────────────────────────────────────────────────────────────────────────┐
  83.  #│ ♦ get_info                                                                │
  84.  #└───────────────────────────────────────────────────────────────────────────┘
  85.   def get_info
  86.     begin
  87.       hr = load_data("Backup_Info.rvdata2").to_i
  88.     rescue
  89.       make_backup
  90.       save_data(get_frequency, "Backup_Info.rvdata2")
  91.       retry
  92.     end
  93.     return hr
  94.   end
  95.  
  96.  #┌───────────────────────────────────────────────────────────────────────────┐
  97.  #│ ♦ save_info                                                               │
  98.  #└───────────────────────────────────────────────────────────────────────────┘
  99.   def save_info
  100.     save_data(get_frequency, "Backup_Info.rvdata2")
  101.   end
  102.  
  103.  #┌───────────────────────────────────────────────────────────────────────────┐
  104.  #│ ♦ get_frequency                                                           │
  105.  #└───────────────────────────────────────────────────────────────────────────┘
  106.   def get_frequency
  107.     case Frequency
  108.     when 1; t = Time.now.hour
  109.     when 2; t = Time.now.mday
  110.     when 3; t = Time.now.wday
  111.     when 4; t = Time.now.mon
  112.     else; t = 0
  113.     end
  114.     return t
  115.   end
  116.  
  117. end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ Prism::STANDALONE::AUTO_BACKUP ◄
  118.  
  119. #╔═════════════════════════════════════════════════════════════════════════════╗
  120. #║ ҉ DataManager                                                               ║
  121. #╚═════════════════════════════════════════════════════════════════════════════╝
  122. class << DataManager
  123.  
  124.  #┌───────────────────────────────────────────────────────────────────────────┐
  125.  #│ ♦ init                                                                    │
  126.  #└───────────────────────────────────────────────────────────────────────────┘
  127.   alias :prism_standalone_autobk_init :init
  128.   def init
  129.     prism_standalone_autobk_init
  130.     prism_check_backup_time(Prism::STANDALONE::AUTO_BACKUP::Frequency)
  131.   end
  132.  
  133.  #┌───────────────────────────────────────────────────────────────────────────┐
  134.  #│ ♦ prism_check_backup_time                                                 │
  135.  #└───────────────────────────────────────────────────────────────────────────┘
  136.   def prism_check_backup_time(t, manager = Prism::STANDALONE::AUTO_BACKUP)
  137.     hr = manager.get_info
  138.     if hr != manager.get_frequency || hr.zero? && manager.get_frequency.zero?
  139.       manager.save_info
  140.       manager.make_backup
  141.     end
  142.   end
  143.  
  144. end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫  DataManager ◄
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement