Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #╔═════════════════════════════════════════════════════════════════════════════╗
- #║ ҉ Prism Standalone - Auto Backup ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Autor: Alisson ║
- #║ Data: 28/02/2017 ║
- #║ Versão: 1.0 ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Histórico: ║
- #║ → 1.5 - Bugs Corrigidos ║
- #║ → 1.0 - Lançado ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Requer: Prism.data na pasta raíz do projeto. ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Informações: ║
- #║ Este script é um utilitário para realizar um backup do seu projeto. ║
- #║ Ele faz um backup automaticamente das pastas desejadas. ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Instruções: ║
- #║ Para usar esse script, você precisa do arquivo Prism.data que foi ║
- #║ disponibilizado junto desse script. As instruções de instalação do ║
- #║ Prism.data estão contidas no topico onde este tópico foi disponibilizado. ║
- #╚═════════════════════════════════════════════════════════════════════════════╝
- module Prism::STANDALONE::AUTO_BACKUP
- extend self
- #╔═══════════════════════════════════════════════════════════════════════════╗
- #║ ♦ Configuração ║
- #╚═══════════════════════════════════════════════════════════════════════════╝
- # A frequência na qual os backup serão realizados.
- # 0 - Toda vez que o jogo for iniciado.
- # 1 - Depois de uma hora desde o último backup.
- # 2 - Depois de um dia desde o último backup.
- # 3 - Depois de uma semana desde o último backup.
- # 4 - Depois de um mês desde o último backup.
- Frequency = 0
- # Uma lista com as pastas do projeto que serão salvas.
- # Utilize / para separar os diretórios.
- # Não adicione uma vírgula ao último item desta lista.
- Directory = [
- "Audio",
- "Data",
- "Graphics/Pictures"
- ]
- # Configuração das pastas.
- Conf = {
- # Diretório onde o backup será salvo. Precisa terminar com /.
- :directory => "C:/Users/alisson/Desktop/",
- # Nome da pasta onde o backup será salvo.
- :folder_name => "Prism Backup"
- }
- #╔═══════════════════════════════════════════════════════════════════════════╗
- #║ ♦ Fim das Configurações ║
- #╠═══════════════════════════════════════════════════════════════════════════╣
- #║ Editar algo após aqui pode prejudicar o funcionamento do script. ║
- #║ Mexa apenas se souber o que está fazendo. ║
- #╚═══════════════════════════════════════════════════════════════════════════╝
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ make_backup │
- #└───────────────────────────────────────────────────────────────────────────┘
- def make_backup
- path = Conf[:directory]
- name = Conf[:folder_name]
- abs_path = path.gsub("/") { "\\" }
- proj_path = Dir.getwd.gsub("/") { "\\" }
- manager = Prism::File_Management
- Dir.mkdir(path + name) if !Dir.exists?(path + name)
- Directory.each {|directory|
- src = "#{proj_path}\\#{directory}"
- dest = "#{abs_path + name}\\#{directory}"
- manager.copy_folder(src, dest)
- }
- end
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ get_info │
- #└───────────────────────────────────────────────────────────────────────────┘
- def get_info
- begin
- hr = load_data("Backup_Info.rvdata2").to_i
- rescue
- make_backup
- save_data(get_frequency, "Backup_Info.rvdata2")
- retry
- end
- return hr
- end
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ save_info │
- #└───────────────────────────────────────────────────────────────────────────┘
- def save_info
- save_data(get_frequency, "Backup_Info.rvdata2")
- end
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ get_frequency │
- #└───────────────────────────────────────────────────────────────────────────┘
- def get_frequency
- case Frequency
- when 1; t = Time.now.hour
- when 2; t = Time.now.mday
- when 3; t = Time.now.wday
- when 4; t = Time.now.mon
- else; t = 0
- end
- return t
- end
- end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ Prism::STANDALONE::AUTO_BACKUP ◄
- #╔═════════════════════════════════════════════════════════════════════════════╗
- #║ ҉ DataManager ║
- #╚═════════════════════════════════════════════════════════════════════════════╝
- class << DataManager
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ init │
- #└───────────────────────────────────────────────────────────────────────────┘
- alias :prism_standalone_autobk_init :init
- def init
- prism_standalone_autobk_init
- prism_check_backup_time(Prism::STANDALONE::AUTO_BACKUP::Frequency)
- end
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ prism_check_backup_time │
- #└───────────────────────────────────────────────────────────────────────────┘
- def prism_check_backup_time(t, manager = Prism::STANDALONE::AUTO_BACKUP)
- hr = manager.get_info
- if hr != manager.get_frequency || hr.zero? && manager.get_frequency.zero?
- manager.save_info
- manager.make_backup
- end
- end
- end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ DataManager ◄
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement