68 lines
1.4 KiB
Ruby
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
|