You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
laughing-hipster/src/.config/vim/rakefile

62 lines
1.7 KiB

require 'rake/clean'
require 'fileutils'
vimFolder = File.expand_path("~/.config/vim")
vimRuntimeFolder = "#{vimFolder}/runtime"
bundles_dir = File.join("#{vimRuntimeFolder}/bundle")
pluginsFile = File.join("#{vimFolder}/plugins.txt")
CLEAN.include "#{bundles_dir}"
task :default => ['clean', 'vim:reinstall']
namespace :vim do
directory "#{bundles_dir}"
desc "reinstalls all vim plugins from #{pluginsFile} into #{bundles_dir}"
task :reinstall do
puts "loading plugins into #{bundles_dir}..."
lines = IO.readlines pluginsFile
puts "Loading #{lines.length} plugins..."
lines.each { |source|
if source[0] != "#" then
loadTask = Rake::Task['vim:downloadPlugin']
loadTask.invoke source.sub "\n", ''
loadTask.reenable()
end
}
puts "Plugins installed!"
end
desc "downloads a vim plugin from a git repo, installs it into #{bundles_dir}"
task :downloadPlugin, [:source] => "#{bundles_dir}" do |t, args|
raise "Must specify git repo to pull from." unless args.source not(nil)
dir = gitName args.source
puts "Installing #{dir}...."
Dir.chdir bundles_dir do
sh "git clone #{args.source} #{dir}"
FileUtils.rm_rf(File.join(dir, ".git"))
end
puts "\n\n"
end
desc "downloads a new plugin into #{bundles_dir} and adds it to #{pluginsFile}"
task :install, [:sourceName] do |t, args|
raise "Must specify git repo to pull from." unless args.sourceName not(nil)
source = "git://github.com/#{args.sourceName}.git"
Rake::Task['vim:downloadPlugin'].invoke source
puts "Adding to #{pluginsFile}"
File.open pluginsFile, 'a' do |file|
file.puts "#{source}\n"
end
end
end
def gitName(gitRepo)
return gitRepo.split('/').last.sub(/\.git$/, '')
end