30 lines
717 B
Ruby
30 lines
717 B
Ruby
require "fileutils"
|
|
|
|
module Vagrant
|
|
module LXC
|
|
module Action
|
|
class CompressRootFS
|
|
def initialize(app, env)
|
|
@app = app
|
|
end
|
|
|
|
def call(env)
|
|
raise Vagrant::Errors::VMPowerOffToPackage if env[:machine].provider.state.id != :stopped
|
|
|
|
env[:ui].info I18n.t("vagrant.actions.lxc.compressing_rootfs")
|
|
@rootfs = env['package.rootfs'] = env[:machine].provider.container.compress_rootfs
|
|
|
|
@app.call env
|
|
|
|
recover # called to remove the rootfs tarball
|
|
end
|
|
|
|
def recover(*)
|
|
if @rootfs && File.exist?(@rootfs)
|
|
FileUtils.rm_rf(File.dirname @rootfs)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|