From 24c1d3a8acf235849eed1a6d5865290f173cb198 Mon Sep 17 00:00:00 2001 From: Fabio Rehm Date: Thu, 17 Oct 2013 12:58:16 -0300 Subject: [PATCH] Clean up Action::Clean a bit and get ready to fix GH-8 --- lib/vagrant-cachier/action/clean.rb | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/vagrant-cachier/action/clean.rb b/lib/vagrant-cachier/action/clean.rb index 84702d0..eb7341f 100644 --- a/lib/vagrant-cachier/action/clean.rb +++ b/lib/vagrant-cachier/action/clean.rb @@ -8,29 +8,34 @@ module VagrantPlugins end def call(env) - @env = env + @machine = env[:machine] - if env[:machine].state.id == :running && symlinks.any? + if should_remove_symlinks? env[:ui].info I18n.t('vagrant_cachier.cleanup') symlinks.each do |symlink| remove_symlink symlink end - File.delete env[:machine].data_dir.join('cache_dirs').to_s + File.delete @machine.data_dir.join('cache_dirs').to_s end @app.call env end + def should_remove_symlinks? + @logger.info 'Checking if cache symlinks should be removed' + symlinks.any? && @machine.state.id == :running + end + def symlinks # TODO: Check if file exists instead of a blank rescue - @symlinks ||= @env[:machine].data_dir.join('cache_dirs').read.split rescue [] + @symlinks ||= @machine.data_dir.join('cache_dirs').read.split rescue [] end def remove_symlink(symlink) - if @env[:machine].communicate.test("test -L #{symlink}") + if @machine.communicate.test("test -L #{symlink}") @logger.debug "Removing symlink for '#{symlink}'" - @env[:machine].communicate.sudo("unlink #{symlink}") + @machine.communicate.sudo("unlink #{symlink}") end end end