[SCM] vim-addon-manager packaging branch, master, updated. v0.4.4-52-geef7258
Antonio Terceiro
terceiro at debian.org
Tue Jan 31 23:33:21 UTC 2012
The following commit has been merged in the master branch:
commit 6fc6c360796784d6dff6f82e4951949bf6da1301
Author: Antonio Terceiro <terceiro at debian.org>
Date: Sun Jan 22 11:30:51 2012 -0200
Move remove logic to the addon itself
diff --git a/lib/vim/addon_manager.rb b/lib/vim/addon_manager.rb
index 718c593..dff12fe 100644
--- a/lib/vim/addon_manager.rb
+++ b/lib/vim/addon_manager.rb
@@ -52,34 +52,8 @@ module Vim
def remove(addons)
removed_files = []
- rmdirs = lambda do |file|
- File.delete(File.join(@target_dir, file))
- dir = File.dirname(file)
- paths = (dir.include? File::Separator) ? File.split(dir) : [dir]
- while paths.size > 0
- begin
- FileUtils.rmdir(File.join(@target_dir, paths))
- rescue Errno::ENOTEMPTY
- break
- end
- paths.pop
- end
- end
addons.each do |addon|
- status = addon.status(@target_dir)
- case status.status
- when :installed
- logger.info "removing installed addon '#{addon}' from #{@target_dir}"
- addon.files.each(&rmdirs)
- removed_files.concat(addon.files.to_a)
- when :broken
- logger.info "removing broken addon '#{addon}' from #{@target_dir}"
- files = (addon.files - status.missing_files)
- files.each(&rmdirs)
- removed_files.concat(files.to_a)
- else
- logger.info "ignoring '#{addon}' which is neither installed nor broken"
- end
+ removed_files.concat(addon.remove(@target_dir))
end
# Try to clean up the tags file and doc dir if it's empty
tagfile = File.join(@target_dir, 'doc', 'tags')
diff --git a/lib/vim/addon_manager/addon.rb b/lib/vim/addon_manager/addon.rb
index 07207bc..294b4df 100644
--- a/lib/vim/addon_manager/addon.rb
+++ b/lib/vim/addon_manager/addon.rb
@@ -106,6 +106,39 @@ module Vim
installed_files
end
+ def rmdirs(target_dir, file)
+ File.delete(File.join(target_dir, file))
+ dir = File.dirname(file)
+ paths = (dir.include? File::Separator) ? File.split(dir) : [dir]
+ while paths.size > 0
+ begin
+ FileUtils.rmdir(File.join(target_dir, paths))
+ rescue Errno::ENOTEMPTY
+ break
+ end
+ paths.pop
+ end
+ end
+
+ def remove(target_dir)
+ removed_files = []
+ status = self.status(target_dir)
+ case status.status
+ when :installed
+ logger.info "removing installed addon '#{self}' from #{target_dir}"
+ self.files.each { |f| rmdirs(target_dir, f) }
+ removed_files.concat(self.files.to_a)
+ when :broken
+ logger.info "removing broken addon '#{self}' from #{target_dir}"
+ files = (self.files - status.missing_files)
+ files.each { |f| rmdirs(target_dir, f) }
+ removed_files.concat(files.to_a)
+ else
+ logger.info "ignoring '#{self}' which is neither installed nor broken"
+ end
+ removed_files
+ end
+
attr_reader :basedir
attr_reader :description
attr_reader :files
--
vim-addon-manager packaging
More information about the pkg-vim-maintainers
mailing list