Module: Rocker::Docket
- Defined in:
- lib/rocker/docket.rb,
lib/rocker/docket/version.rb
Constant Summary collapse
- VERSION =
'0.0.2'
Class Method Summary collapse
- .build ⇒ Object
- .dir ⇒ Object
- .dockerfile ⇒ Object
- .releases_string ⇒ Object
- .rocket_url ⇒ Object
- .rocket_url_file ⇒ Object
- .template ⇒ Object
- .update ⇒ Object
Class Method Details
.build ⇒ Object
9 10 11 12 13 |
# File 'lib/rocker/docket.rb', line 9 def build update unless File.exists? dockerfile write(dockerfile, ERB.new(File.read(template)).result(binding)) exec "docker build -t rocker-docket #{dir}" end |
.dir ⇒ Object
48 49 50 |
# File 'lib/rocker/docket.rb', line 48 def dir "#{ENV['HOME']}/.rocker-docket" end |
.dockerfile ⇒ Object
36 37 38 |
# File 'lib/rocker/docket.rb', line 36 def dockerfile "#{dir}/Dockerfile" end |
.releases_string ⇒ Object
32 33 34 |
# File 'lib/rocker/docket.rb', line 32 def releases_string open("https://api.github.com/repos/coreos/rocket/releases"){ |f| f.read } end |
.rocket_url ⇒ Object
40 41 42 |
# File 'lib/rocker/docket.rb', line 40 def rocket_url File.read rocket_url_file if File.exists? rocket_url_file end |
.rocket_url_file ⇒ Object
44 45 46 |
# File 'lib/rocker/docket.rb', line 44 def rocket_url_file "#{dir}/rocket_url" end |
.template ⇒ Object
15 16 17 |
# File 'lib/rocker/docket.rb', line 15 def template "#{File.join(File.dirname(__FILE__), 'Dockerfile.erb')}" end |
.update ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rocker/docket.rb', line 19 def update release = JSON.parse(releases_string)[0] assets_url = release['assets_url'] tag = release['tag_name'] download_url = JSON.parse(open(assets_url){|f| f.read }).detect{ |a| a['name'] =~ /rocket.*.tar.gz/ }['browser_download_url'] if download_url == rocket_url nil else write(rocket_url_file, download_url) tag end end |