Class: Ec2BootstrapGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/bigbang/ec2-git-bootstrap.rb

Instance Method Summary collapse

Instance Method Details

#generate_from_dir(path) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
# File 'lib/bigbang/ec2-git-bootstrap.rb', line 2

def generate_from_dir(path)
	basedir = File.dirname(__FILE__) + "/../../"
	tmp=%x(mktemp -d /tmp/gen-ec2-userdata.XXXXX).strip
	%x(mkdir -p #{tmp}/data)
	%x(cp -r #{path}/* #{tmp}/data/)
	%x(cp #{basedir}/src/* #{tmp})
	tmptar=%x(mktemp /tmp/gen-ec2-userdata.XXXXX.tar.gz).strip
	%x(tar -czf #{tmptar} -C #{tmp} .)

	File.new("#{basedir}/src/bootstrap.sh").read +
		File.new(tmptar).read
end

#generate_from_hash(h) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/bigbang/ec2-git-bootstrap.rb', line 15

def generate_from_hash(h)
	tmp=%x(mktemp -d /tmp/gen-ec2-userdata.XXXXX).strip
	h.each_pair do |k,v|
		f = File.new("#{tmp}/#{k}", "w")
		f.write(v)
		f.close
	end

	generate_from_dir(tmp).tap do |r|
		%x(rm -fr #{tmp})
	end
end