forked from notahat/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Rakefile
64 lines (58 loc) · 1.75 KB
/
Rakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
require 'rake'
require 'erb'
desc "install the dot files into user's home directory"
task :install do
set_macvim_defaults
replace_all = false
Dir['*'].each do |file|
next if %w[Rakefile README.rdoc LICENSE].include? file
if File.exist?(File.join(ENV['HOME'], ".#{file.sub('.erb', '')}"))
if File.identical? file, File.join(ENV['HOME'], ".#{file.sub('.erb', '')}")
puts "identical ~/.#{file.sub('.erb', '')}"
elsif replace_all
replace_file(file)
else
print "overwrite ~/.#{file.sub('.erb', '')}? [ynaq] "
case $stdin.gets.chomp
when 'a'
replace_all = true
replace_file(file)
when 'y'
replace_file(file)
when 'q'
exit
else
puts "skipping ~/.#{file.sub('.erb', '')}"
end
end
else
link_file(file)
end
end
end
def replace_file(file)
system %Q{rm "$HOME/.#{file.sub('.erb', '')}"}
link_file(file)
end
def link_file(file)
if file =~ /.erb$/
puts "generating ~/.#{file.sub('.erb', '')}"
File.open(File.join(ENV['HOME'], ".#{file.sub('.erb', '')}"), 'w') do |new_file|
new_file.write ERB.new(File.read(file)).result(binding)
end
else
puts "linking ~/.#{file}"
system %Q{ln -s "$PWD/#{file}" "$HOME/.#{file}"}
end
end
# Set the MacVIM window borders to look like the Terminal.app ones.
#
# To restore defaults, use:
# defaults delete org.vim.MacVim
def set_macvim_defaults
system "defaults write org.vim.MacVim MMTextInsetTop 2"
system "defaults write org.vim.MacVim MMTextInsetBottom 5"
system "defaults write org.vim.MacVim MMTextInsetLeft 5"
system "defaults write org.vim.MacVim MMTextInsetRight 5"
system "defaults write org.vim.MacVim MMTabOptimumWidth 200"
end