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/rakefile

60 lines
1.6 KiB

require 'rake/clean'
require 'fileutils'
vimFolder = "Tools/vim"
bundles_dir = File.join(File.dirname(__FILE__), "#{vimFolder}/bundle/")
pluginsFile = File.join(File.dirname(__FILE__), "#{vimFolder}/plugins.txt")
CLOBBER.include "#{bundles_dir}/*"
task :default => ['clobber', 'vim:install']
namespace :vim do
directory "#{bundles_dir}"
desc "installs vim plugins from #{vimFolder}/plugins.txt"
task :install do
puts "loading plugins into #{bundles_dir}..."
lines = IO.readlines pluginsFile
puts "Loading #{lines.length} plugins..."
lines.each { |source|
loadTask = Rake::Task['vim:installPlugin']
loadTask.invoke source.sub "\n", ''
loadTask.reenable()
}
puts "Plugins installed!"
end
desc 'loads a vim plugin from a git repo'
task :installPlugin, [: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 'adds and installs a new plugin'
task :addPlugin, [:sourceName] do |t, args|
raise "Must specify git repo to pull from." unless args.sourceName not(nil)
source = "git://github.com/#{args.sourceName}.git"
File.open pluginsFile, 'a' do |file|
file.puts "#{source}\n"
end
Rake::Task['vim:installPlugin'].invoke source
end
end
def gitName(gitRepo)
return gitRepo.split('/').last.sub(/\.git$/, '')
end