[SCM] vim-addon-manager packaging branch, master, updated. v0.4.4-52-geef7258
Antonio Terceiro
terceiro at debian.org
Tue Jan 31 23:33:19 UTC 2012
The following commit has been merged in the master branch:
commit a4241422516a8a4ab40a2781b3c49f54beb2e670
Author: Antonio Terceiro <terceiro at debian.org>
Date: Sun Jan 22 11:22:30 2012 -0200
Move install logic to the addon itself
diff --git a/bin/vim-addons b/bin/vim-addons
index d0d0d4f..6b2ec79 100755
--- a/bin/vim-addons
+++ b/bin/vim-addons
@@ -270,7 +270,7 @@ when 'status'
when 'files'
selected_addons.each {|a| puts a.files.to_a}
else
- mgr = Vim::AddonManager.new options[:source_dir], options[:target_dir]
+ mgr = Vim::AddonManager.new options[:target_dir]
mgr.send cmd, selected_addons
end
diff --git a/lib/vim/addon_manager.rb b/lib/vim/addon_manager.rb
index 8320b0e..718c593 100644
--- a/lib/vim/addon_manager.rb
+++ b/lib/vim/addon_manager.rb
@@ -19,12 +19,10 @@ module Vim
class AddonManager
- def initialize(source_dir, target_dir)
- @source_dir = source_dir
+ def initialize(target_dir)
@target_dir = target_dir
end
- attr_accessor :source_dir
attr_accessor :target_dir
def self.override_file(dir)
@@ -47,30 +45,7 @@ module Vim
def install(addons)
installed_files = []
addons.each do |addon|
- base_dir = (addon.basedir or @source_dir)
- symlink = lambda do |file|
- dest = File.join(@target_dir, file)
- dest_dir = File.dirname dest
- FileUtils.mkdir_p dest_dir
- FileUtils.ln_sf(File.join(base_dir, file), dest)
- end
- status = addon.status(@target_dir)
- case status.status
- when :broken
- logger.info "installing broken addon '#{addon}' to #{@target_dir}"
- status.missing_files.each(&symlink)
- installed_files.concat(status.missing_files.to_a)
- when :not_installed
- logger.info "installing removed addon '#{addon}' to #{@target_dir}"
- addon.files.each(&symlink)
- installed_files.concat(addon.files.to_a)
- when :unavailable
- s = "ignoring '#{addon}' which is missing source files"
- s << "\n- #{status.missing_files.join "\n- "}" if logger.verbose?
- logger.warn s
- else
- logger.info "ignoring '#{addon}' which is neither removed nor broken"
- end
+ installed_files.concat(addon.install(@target_dir))
end
rebuild_tags(installed_files)
end
diff --git a/lib/vim/addon_manager/addon.rb b/lib/vim/addon_manager/addon.rb
index 8859048..07207bc 100644
--- a/lib/vim/addon_manager/addon.rb
+++ b/lib/vim/addon_manager/addon.rb
@@ -76,6 +76,36 @@ module Vim
line =~ @disabled_by_RE ? true : false
end
+ # Installs addon files into +target_dir+ and returns a list of installed
+ # files.
+ def install(target_dir)
+ installed_files = []
+ symlink = lambda do |file|
+ dest = File.join(target_dir, file)
+ dest_dir = File.dirname dest
+ FileUtils.mkdir_p dest_dir
+ FileUtils.ln_sf(File.join(basedir, file), dest)
+ end
+ status = self.status(target_dir)
+ case status.status
+ when :broken
+ logger.info "installing broken addon '#{self}' to #{target_dir}"
+ status.missing_files.each(&symlink)
+ installed_files.concat(status.missing_files.to_a)
+ when :not_installed
+ logger.info "installing removed addon '#{self}' to #{target_dir}"
+ self.files.each(&symlink)
+ installed_files.concat(self.files.to_a)
+ when :unavailable
+ s = "ignoring '#{self}' which is missing source files"
+ s << "\n- #{status.missing_files.join "\n- "}" if logger.verbose?
+ logger.warn s
+ else
+ logger.info "ignoring '#{self}' which is neither removed nor broken"
+ end
+ installed_files
+ end
+
attr_reader :basedir
attr_reader :description
attr_reader :files
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index 3d50836..358ce19 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -46,7 +46,7 @@ module VimAddonManagerSpecHelper
end
def addon_manager
- @addon_manager ||= Vim::AddonManager.new(FAKE_ADDONS, target_dir.path)
+ @addon_manager ||= Vim::AddonManager.new(target_dir.path)
end
end
--
vim-addon-manager packaging
More information about the pkg-vim-maintainers
mailing list