forked from hjdivad/dotfiles
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRakefile
More file actions
37 lines (29 loc) · 1.07 KB
/
Copy pathRakefile
File metadata and controls
37 lines (29 loc) · 1.07 KB
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
require 'fileutils'
desc "Install dotfiles."
task :install do
Dir.chdir(File.dirname __FILE__) do
Dir["**/*.copy"]
.reject { it.start_with?('backup') }
.each do |copy_file|
dest_file = %Q{#{ENV['HOME']}/.#{File.basename( copy_file ).chomp(".copy")}}
puts "Unlinking #{dest_file}"
FileUtils.safe_unlink(dest_file) if File.exist?(dest_file) || File.symlink?(dest_file)
puts "Copying #{dest_file}"
FileUtils.cp copy_file, dest_file
end
end
puts "\nSymlink"
Dir.chdir(File.dirname __FILE__) do
Dir["**/*.symlink"]
.reject { it.start_with?('backup') }
.each do |symlink_file|
dest_file = %Q{#{ENV['HOME']}/.#{File.basename( symlink_file ).chomp(".symlink")}}
source_file = File.expand_path(symlink_file)
puts "Unlinking #{dest_file}"
# Use a more comprehensive check
FileUtils.safe_unlink(dest_file) if File.exist?(dest_file) || File.symlink?(dest_file)
puts "Creating symlink #{dest_file} -> #{source_file}"
FileUtils.ln_s source_file, dest_file
end
end
end