All functions of 'bundle exec rake dots' now work

This commit is contained in:
Gene Liverman 2017-06-04 17:03:47 -07:00
parent 48b87f7744
commit 96d067d035
6 changed files with 69 additions and 23 deletions

View file

@ -12,11 +12,32 @@ def existing_symlink(source, destination)
# rubocop:enable Metrics/LineLength
end
def rename_file(source, destination)
# rubocop:disable Metrics/MethodLength
def rename_file(source, destination, action)
puts "#{destination} exists, renaming to #{destination}.predots"
File.rename(destination, "#{destination}.predots")
puts "Linking #{destination} to #{source}"
File.symlink(source, destination)
if action.eql?('link')
puts "Linking #{destination} to #{source}"
File.symlink(source, destination)
elsif action.eql?('copy')
puts "Copying #{destination} to #{source}"
FileUtils.cp_r(source, destination)
else
raise ArgumentError, "'#{action}' is not a valid action", backtrace
end
end
# rubocop:enable Metrics/MethodLength
def copy_file(source, destination)
if File.exist?(destination)
if @prompt.yes?("#{destination} exists, do you want to replace it?")
rename_file(source, destination, 'copy')
else
puts "#{destination} is unchanged"
end
else
FileUtils.cp_r(source, destination)
end
end
def link_file(source, destination)
@ -24,9 +45,28 @@ def link_file(source, destination)
existing_symlink(source, destination)
elsif File.exist?(destination)
# this catches anything that is not a symlink
rename_file(source, destination)
rename_file(source, destination, 'link')
else
puts "Linking #{destination} to #{source}"
File.symlink(source, destination)
end
end
# rubocop:disable Metrics/MethodLength, Metrics/AbcSize
def mac_vers
stdout, _stderr, _status = Open3.capture3('sw_vers -productVersion')
if Integer(stdout.strip.split('.')[0]) == 10
if Integer(stdout.strip.split('.')[1]) >= 12
puts "It seems you are on macOS #{stdout.strip}"
else
puts "It seems you are on OX X #{stdout.strip}"
end
elsif Integer(stdout.strip.split('.')[0]) < 10
puts "Wow... you're sure running an old os (#{stdout.strip} to be exact)"
else
abort("It seems you are on a Mac but I don't know what to do on \
v#{stdout.strip}")
end
end
# rubocop:enable Metrics/MethodLength, Metrics/AbcSize