class StellarCoreBackup::Filesystem

Attributes

core_data_dir[R]

Public Class Methods

new(config) click to toggle source
# File lib/stellar-core-backup/filesystem.rb, line 10
def initialize(config)
  @config         = config
  @working_dir    = StellarCoreBackup::Utils.create_working_dir(@config.get('working_dir'))
  @core_data_dir  = get_core_data_dir(@config.get('core_config'))
end

Public Instance Methods

backup() click to toggle source
# File lib/stellar-core-backup/filesystem.rb, line 17
def backup()
  create_core_data_tar()
end

Private Instance Methods

core_data_readable?() click to toggle source
# File lib/stellar-core-backup/filesystem.rb, line 37
def core_data_readable?()
  if File.readable?("#{@core_data_dir}/stellar-core.lock") then
    puts "info: processing #{@core_data_dir}"
    return true
  else
    puts "error: can not access #{@core_data_dir}"
    raise ReadError
  end
end
create_core_data_tar() click to toggle source

Contract nil, StellarCoreBackup::CmdResult

# File lib/stellar-core-backup/filesystem.rb, line 23
def create_core_data_tar()
  if core_data_readable?() then
    # create the tar balls
    puts "info: creating filesystem backup"
    Dir.chdir(@core_data_dir)
    StellarCoreBackup::Tar.pack("#{@working_dir}/core-fs.tar", '.')
    Dir.chdir(@working_dir)
  end
end
get_core_data_dir(config) click to toggle source
# File lib/stellar-core-backup/filesystem.rb, line 49
def get_core_data_dir(config)
  File.open(config,'r') do |fd|
    fd.each_line do |line|
      if (line[/^BUCKET_DIR_PATH=/]) then
        # "postgresql://dbname=stellar user=stellar"
        core_data_dir = /^BUCKET_DIR_PATH="(.*)"$/.match(line).captures[0]
        return core_data_dir
      end
    end
  end
end