This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/script/cli/commands/backup_command.rb
2023-01-13 00:20:33 +01:00

68 lines
1.4 KiB
Ruby

# frozen_string_literal: true
require "thor"
module DiscourseCLI
class BackupCommand < Thor
desc "create", "Creates a backup"
def create
DiscourseCLI.load_rails
with_logger("backup") do |logger|
backuper = BackupRestoreV2::Backuper.new(Discourse::SYSTEM_USER_ID, logger)
backuper.run
exit(1) unless backuper.success
end
end
desc "restore FILENAME", "Restores a backup"
def restore(filename)
end
desc "list", "Lists existing backups"
def list
end
desc "delete", "Deletes a backup"
def delete
end
desc "download", "Downloads a backup"
def download
end
desc "test", "Testing stuff"
def test
DiscourseCLI.load_rails
logger = BackupRestoreV2::LoggerV2.new
logger.debug("Hello world")
logger.info("Hello world")
logger.warn("Hello world")
logger.error("Hello world")
logger.fatal("Hello world")
logger.step_with_progress("Preparing rocket") do |progress|
max = 1000
progress.start(max)
(1..max).each do |i|
sleep(0.01)
progress.increment
sleep(2) if i == max
end
end
logger.close
end
no_commands do
private def with_logger(name)
logger = BackupRestoreV2::Logger::CliLogger.new(name)
yield logger
ensure
logger.close if logger
end
end
end
end