31 lines
717 B
Ruby
31 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
|