Class: Avm::Instances::Data::FilesUnit

Inherits:
Unit show all
Defined in:
lib/avm/instances/data/files_unit.rb

Constant Summary collapse

EXTENSION =
'.tar.gz'

Instance Method Summary collapse

Methods inherited from Data::Unit

#dump, #dump_to_directory, #extension, #load, #load_from_directory, #name

Instance Method Details

#clear_filesObject



36
37
38
39
40
# File 'lib/avm/instances/data/files_unit.rb', line 36

def clear_files
  infom "Removing all files under #{files_path}..."
  instance_command('mkdir', '-p', files_path).execute!
  instance_command('find', files_path, '-mindepth', 1, '-delete').execute!
end

#dump_commandObject



28
29
30
# File 'lib/avm/instances/data/files_unit.rb', line 28

def dump_command
  instance_command('tar', '-czf', '-', '-C', files_path, '.')
end

#files_pathPathname

Returns:

  • (Pathname)


23
24
25
26
# File 'lib/avm/instances/data/files_unit.rb', line 23

def files_path
  fs_path_subpath
    .expand_path(instance.read_entry(::Avm::Instances::EntryKeys::INSTALL_PATH))
end

#installation_files_dataStruct(:key, :subpath)?

Returns:

  • (Struct(:key, :subpath), nil)


43
44
45
46
47
# File 'lib/avm/instances/data/files_unit.rb', line 43

def installation_files_data
  return nil unless fs_path_subpath.relative?

  ::Struct.new(:key, :subpath).new(fs_path_subpath.basename.to_path, fs_path_subpath)
end

#instance_command(*args) ⇒ EacRubyUtils::Envs::Command

Returns:

  • (EacRubyUtils::Envs::Command)


50
51
52
53
# File 'lib/avm/instances/data/files_unit.rb', line 50

def instance_command(*args)
  args = ['sudo', '-Hu', sudo_user] + args if sudo_user.present?
  instance.host_env.command(*args).chdir('/')
end

#load_commandObject



32
33
34
# File 'lib/avm/instances/data/files_unit.rb', line 32

def load_command
  instance_command('tar', '-xzf', '-', '-C', files_path)
end

#sudo_userString?

Returns:

  • (String, nil)


56
57
58
# File 'lib/avm/instances/data/files_unit.rb', line 56

def sudo_user
  options[OPTION_SUDO_USER]
end