Class: Subspace::Commands::Base
- Inherits:
-
Commander::Command
- Object
- Commander::Command
- Subspace::Commands::Base
show all
- Includes:
- Ansible
- Defined in:
- lib/subspace/commands/base.rb
Instance Method Summary
collapse
Methods included from Ansible
#ansible_command
Instance Method Details
#confirm_overwrite(file_path) ⇒ Object
50
51
52
53
54
|
# File 'lib/subspace/commands/base.rb', line 50
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
|
#copy(src, dest = nil) ⇒ Object
43
44
45
46
47
48
|
# File 'lib/subspace/commands/base.rb', line 43
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
|
#dest_dir ⇒ Object
27
28
29
|
# File 'lib/subspace/commands/base.rb', line 27
def dest_dir
"config/provision"
end
|
#gem_path ⇒ Object
19
20
21
|
# File 'lib/subspace/commands/base.rb', line 19
def gem_path
File.expand_path '../../../..', __FILE__
end
|
#playbook_dir ⇒ Object
11
12
13
|
# File 'lib/subspace/commands/base.rb', line 11
def playbook_dir
File.join(gem_path, 'ansible', 'playbooks')
end
|
#project_path ⇒ Object
23
24
25
|
# File 'lib/subspace/commands/base.rb', line 23
def project_path
Dir.pwd
end
|
#require_configuration ⇒ Object
7
8
9
|
# File 'lib/subspace/commands/base.rb', line 7
def require_configuration
load "config/provision.rb"
end
|
#template(src, dest = nil, render_binding = nil) ⇒ Object
31
32
33
34
35
|
# File 'lib/subspace/commands/base.rb', line 31
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
|
#template!(src, dest = nil, render_binding = nil) ⇒ Object
37
38
39
40
41
|
# File 'lib/subspace/commands/base.rb', line 37
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
|
#template_dir ⇒ Object
15
16
17
|
# File 'lib/subspace/commands/base.rb', line 15
def template_dir
File.join(gem_path, 'template', 'provision')
end
|