lib/subspace/commands/base.rb in subspace-0.2.1 vs lib/subspace/commands/base.rb in subspace-0.3.0

- old
+ new

@@ -6,30 +6,52 @@ def require_configuration load "config/provision.rb" end + def playbook_dir + File.join(gem_path, 'ansible', 'playbooks') + end + def template_dir File.join(gem_path, 'template', 'provision') end def gem_path File.expand_path '../../../..', __FILE__ end + def project_path + Dir.pwd # TODO make sure this is correct if they for whatever reason aren't running subspace from the project root?? + end + def dest_dir "config/provision" end def template(src, dest = nil, render_binding = nil) + return unless confirm_overwrite File.join(dest_dir, dest || src) + template! src, dest, render_binding + say "Wrote #{dest}" + end + + def template!(src, dest = nil, render_binding = nil) dest ||= src template = ERB.new File.read(File.join(template_dir, "#{src}.erb")), nil, '-' File.write File.join(dest_dir, dest), template.result(render_binding || binding) end def copy(src, dest = nil) dest ||= src + return unless confirm_overwrite File.join(dest_dir, dest) FileUtils.cp File.join(template_dir, src), File.join(dest_dir, dest) + say "Wrote #{dest}" + end + + def confirm_overwrite(file_path) + return true unless File.exists? file_path + answer = ask "#{file_path} already exists. Reply 'y' to overwrite: [no] " + return answer.downcase.start_with? "y" end end end end