1
0
mirror of https://github.com/meineerde/dotfiles.git synced 2026-02-06 00:53:23 +00:00
dotfiles/Rakefile
2012-12-13 23:23:36 +01:00

82 lines
2.1 KiB
Ruby

require 'fileutils'
desc "installs everything"
task :install => "install:all"
namespace :install do
def files(name, *files)
desc "installs #{name} configuration"
task(name) do
Dir[*files].collect do |file|
full = File.join File.dirname(__FILE__), file
Dir.chdir ENV["HOME"] do
mkdir_p File.dirname(file)
File.delete(file) if (File.exist? file and File.directory? full)
sh "ln -sf #{full} #{file}"
end
end
end
task :all => name
end
files :irb, ".irbrc", ".config/irb/*.rb"
files :dot, *%w(.bash_profile .bashrc .gemrc .global_gitignore .gitconfig .ackrc .rvmrc)
files :bin, "bin/*"
desc "Update all submodules"
task :submodules do
system "git submodule init && git submodule update"
end
desc "installs the custom texmf folder"
task :texmf => :submodules do
files :texmf_folder, "texmf"
Rake::Task[:texmf_folder].invoke
end
desc "Setup SublimeText2"
task :sublime do
end
desc "Sublime Configuration"
task :sublime_config do
sublime_path = "#{ENV['HOME']}/Library/Application Support/Sublime Text 2"
df_dir = File.expand_path("../sublime", __FILE__)
FileUtils.ln_sf("#{df_dir}/Preferences.sublime-settings", "#{sublime_path}/Packages/User/Preferences.sublime-settings")
end
desc "Install SublimeText2 Plugins"
task :sublime_plugins do
require 'json'
package_control = "#{ENV['HOME']}/Library/Application Support/Sublime Text 2/Packages/User/Package Control.sublime-settings"
packages = JSON.parse(File.read(package_control))
packages["installed_packages"] |= %w[
CTags
Git
LaTeXTools
SideBarEnhancements
SublimeTODO
Theme - Soda
TODO Control
]
File.open(package_control, "w") do |f|
f.write(JSON.pretty_generate(packages))
end
end
sublime_path = "#{ENV['HOME']}/Library/Application Support/Sublime Text 2"
if File.exist?(sublime_path)
task :sublime => :sublime_config
if File.exist?("#{sublime_path}/Packages/User/Package Control.sublime-settings")
task :sublime => :sublime_plugins
end
end
task :all => [:texmf, :sublime]
end