Module: Rbcli::ToolHelpers

Defined in:
lib/rbcli-tool/helpers.rb

Defined Under Namespace

Classes: ERBRenderer

Class Method Summary collapse

Class Method Details

.cp_file(src_file, dest_file, render_erb: true, set_executable: false, template_vars: nil, force: false) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/rbcli-tool/helpers.rb', line 14

def self.cp_file src_file, dest_file, render_erb: true, set_executable: false, template_vars: nil, force: false
  src = File.expand_path(src_file)
  dest = File.expand_path(dest_file)
  if File.exist?(dest) && !force
    Rbcli.log.info "File #{File.basename(dest)} already exists. Overwrite? (y/N):", "TOOL"
    answer = gets.chomp
    answer = { 'y' => true, 'n' => false }[(answer[0] || '').downcase]
    if answer
      FileUtils.rm_rf(dest)
    else
      Rbcli.log.error "Destination file #{dest} already exists. Please delete it and try again.", "TOOL"
      return false
    end
  end
  Rbcli.log.info "Generating file " + File.basename(dest) + " ... ", "TOOL"
  if render_erb
    File.write(dest, self.render_erb(src, template_vars))
  else
    FileUtils.cp(src, dest)
  end
  FileUtils.chmod(set_executable ? 0755 : 0644, dest)
  FileUtils.rm_f(File.join(File.dirname(dest), '.keep')) if File.exist?(File.join(File.dirname(dest), '.keep'))
  true
end

.render_erb(src, template_vars) ⇒ Object



10
11
12
# File 'lib/rbcli-tool/helpers.rb', line 10

def self.render_erb src, template_vars
  ERBRenderer.new(src, template_vars).render
end