bricky 0.0.21 → 0.0.22

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTUwZjhlYzE5Yzc2OGM5N2JhOGNmOThlZWFiYzVkOTVhNGZkNjc3NA==
4
+ MzkxMWM0NDVkZDUzNjU4ZWU2NjRlNWJhYTg1OTA1MzdjMzliMjUzNw==
5
5
  data.tar.gz: !binary |-
6
- ZDk2ZGYyOTNiNzU3ZjQwZTZkMjE0YWE3N2QzM2FmNzk1N2EyYzgxNw==
6
+ OWEzMzRkMjc3MTFjZDI5ZDQxMjJhYzI5MmUxMjdlNjNkMzFmODU0YQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZWI0MTE3MzA0YWUxMTMwZmU1OGIzNDI1ZmJjYThiM2U0NGZmNzQ2YWQ3ZjA4
10
- NWY4ZTY5ODI5OTZiYzE5MGFiNmVlY2RiNWQzN2QxMjgyMGRjZGI3ODNkM2Fm
11
- MTFmMzExNWIwZjhiMDRiN2I4NjUwMWYyYThhNDk4MjMzZjJjZmY=
9
+ ZTc1Y2Q3ODc2MDZmYTI0MzY2MTI0YzkzZmU4NzE1YjBkNjZiMTA4N2ZkNDUw
10
+ MjI1NmY0OTJiZTkwMjNlYzJlYmJkMDkxNGIzNTY5YjIzOGQ5NDM2NWNiMzdk
11
+ MDZlMTg2MWVjZmY5ODFiYWNlNTVjMDY5ZTYzOTgwZGI2Y2NkMWI=
12
12
  data.tar.gz: !binary |-
13
- MGM2NWQ2YTA3NDZjNGY1NGJlNmU4ZTMyOWQ2NGU2NDMwZDM2MmVhMWZlNzJh
14
- YmZlN2I4YzQ4YzZlNzc1NGFjMTY3ZDdiYTFkNjIwNTFjMzVkYjEwYWNiNDAy
15
- M2FjYTg4MmMzMTBmZWU3Y2RmN2I3MDZlMDExOTkxNmUzYTgyOGE=
13
+ ZjljMDBkZjIzNjhhOWJjNDY0YjM0YTNkOGJmOWFjNGZiYzhlMTc1NDNkMGRh
14
+ YzcxNzRlZWNmNjExZjYyM2M2YmRjZDEzMGFiMzdmOWUxZjRiMGY0OTZjZTli
15
+ ZTRhOTZkMmZkMjY1MTYxOTdmZGVkMTU5Mjg4N2U2MjY2M2IxNTA=
@@ -16,6 +16,9 @@ module Bricky
16
16
  def environments
17
17
  end
18
18
 
19
+ def bootstrap(bootstrap_path)
20
+ end
21
+
19
22
  private
20
23
  def bricks_path
21
24
  Bricky.config.shim_path
@@ -1,16 +1,37 @@
1
+ require 'digest'
2
+
1
3
  module Bricky
2
4
  module Bricks
3
5
  class Debian < Base
4
6
  def arguments
5
- builded_path = ENV.fetch('PACKAGE_OUTPUT_PATH', File.expand_path(config["build"]))
7
+ builded_path = File.expand_path(ENV.fetch('PACKAGE_OUTPUT_PATH', config['build']))
6
8
  scripts_path = "#{bricks_path}/debian"
7
9
 
8
10
  %W(-v #{builded_path}:/builded
9
11
  -v #{scripts_path}:/bricks/debian)
10
12
  end
11
-
13
+
12
14
  def entrypoint
13
- "/bricks/debian/builder"
15
+ "/bricks/debian/builder"
16
+ end
17
+
18
+ def bootstrap(bootstrap_path)
19
+ if config.fetch('dependencies', false)
20
+ src = File.expand_path('debian/control')
21
+ dest = "#{bootstrap_path}/control"
22
+
23
+ FileUtils.cp(src, dest) unless skip_cached_file(src, dest)
24
+ ["COPY control /tmp/control", "RUN yes | mk-build-deps --install /tmp/control"]
25
+ end
26
+ end
27
+
28
+ private
29
+ def skip_cached_file(src, dest)
30
+ return false if not File.exists?(dest)
31
+
32
+ src_digest = Digest::SHA256.file(src).hexdigest
33
+ dest_digest = Digest::SHA256.file(dest).hexdigest
34
+ not src_digest.eql?(dest_digest) ? false : true
14
35
  end
15
36
  end
16
37
  end
@@ -1,5 +1,6 @@
1
1
  require "etc"
2
2
  require "fileutils"
3
+ require "bricky/bricks"
3
4
 
4
5
  module Bricky
5
6
  module Commands
@@ -16,7 +17,7 @@ module Bricky
16
17
 
17
18
  [base, hack].each do |code|
18
19
  logger.message "Processing '#{image.name}' image: ", code
19
-
20
+
20
21
  unless Bricky::Executor.popen("builder", code)
21
22
  logger.failure "~~~~~~~~~~~ Problems building image ~~~~~~~~~~~"
22
23
  return false
@@ -35,8 +36,8 @@ module Bricky
35
36
  end
36
37
 
37
38
  def create_hack_image(image)
38
- hack_path = FileUtils::mkdir_p("#{Bricky.config.tmp_path}/patch/").first
39
- File.open("#{hack_path}/Dockerfile", "w") { |file| file.write(parse_hack_template(image)) }
39
+ hacked_docker_image = parse_hack_template(image) + append_to_template
40
+ File.open("#{hack_path}/Dockerfile", "w") { |file| file.write(hacked_docker_image) }
40
41
  hack_path
41
42
  end
42
43
 
@@ -56,6 +57,18 @@ module Bricky
56
57
  def cache_file
57
58
  "#{Bricky.config.cache_path}/builder"
58
59
  end
60
+
61
+ def append_to_template
62
+ bricks.collect { |brick| brick.bootstrap(hack_path) }.flatten.join("\n")
63
+ end
64
+
65
+ def hack_path
66
+ FileUtils::mkdir_p("#{Bricky.config.tmp_path}/patch/").first
67
+ end
68
+
69
+ def bricks
70
+ @bricks ||= Bricky::Bricks.resolve
71
+ end
59
72
  end
60
73
  end
61
74
  end
@@ -1,3 +1,3 @@
1
1
  module Bricky
2
- VERSION = "0.0.21"
2
+ VERSION = "0.0.22"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bricky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.21
4
+ version: 0.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - andrerocker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-25 00:00:00.000000000 Z
11
+ date: 2015-07-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler