forked from ehrenmurdick/config
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathRakefile
53 lines (43 loc) · 1.03 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
namespace :install do
desc "install everything"
task :all => ["install:ack", "install:gem", "install:git", "install:irb", "install:vim", "install:zsh"]
desc "install ack config"
task :ack do
install("ackrc")
end
desc "install gem config"
task :gem do
install("gemrc")
end
desc "install git config"
task :git do
install("gitconfig.example", "gitignore")
end
desc "install irb config"
task :irb do
install("irbrc", "railsrc")
end
desc "install vim config"
task :vim do
install("vim", "vimrc", "gvimrc")
end
desc "install zsh config"
task :zsh do
install("zsh", "zshrc")
mkdir_p "#{ENV["HOME"]}/bin/config"
end
end
def install(*files)
files.each do |file|
if file.match(/(.*).example$/)
src = "#{File.expand_path(".")}/#{file}"
dest = "#{File.expand_path(".")}/#{$1}"
cp src, dest
file = $1
end
src = "#{File.expand_path(".")}/#{file}"
dest = "#{ENV["HOME"]}/.#{file}"
rm_rf dest if File.exists?(dest)
ln_s src, dest
end
end