bricky 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTQ2ODNjMDgwNWViODIxN2I3ZGM4ZWRlNjhhNDc0ZGJhYjA2YzY3Zg==
4
+ OTk2Mjc3MWI3NGNhYTQwOGY5MDMyMjY0YTY0OWQ5YThiYTU3ODc3OQ==
5
5
  data.tar.gz: !binary |-
6
- MzJjNjAxZGQ3OWI2YTc2Yzg1NDdlZTk5ZjgwYjEwNmZhYzU5ODU4Ng==
6
+ YTdlMTFiMjJjNjEzOGY4YTVmZDQzZTQwYTc3ZjI0ZGE1ZGI2ZThkNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- OGJmYWU3ZDlkNjQ1YTQxYjhhNzIyMDg1MDE2YmI5MTExN2Q4MjYxMDMwOTU4
10
- NDQ5ZGE0YTlmN2I3MTA2YTMzNzg3ZjljM2ZiMjgwYjY5YTFhYjI2NGE5Mjhi
11
- MDE1ZDM5Y2JjMzEwMWM3YTllODA3ODhjOTMyYTYwYjE2ZTFlOTU=
9
+ NzMwMzRiNjBlNWE2NmU2MTQwNDkzY2VjNzcyNDE5NGM3MjEzYzZiNGIxZDZm
10
+ ZmY3MzdhMTQwOWFkNmNjMzFiZTc5OTdmNjg2ZTRhMWFmZTIwNzJhNzQzNmNl
11
+ MzliZjUwNjZlMjA4YmZjN2VjMWI2NjZlZjM5MDcxZTExY2M1NzM=
12
12
  data.tar.gz: !binary |-
13
- MWIwODkwMWFmMTQwZDUzZTQ3ODViZDE1ZGI0YTQ4YjEzNmYyODgzNzk4OGQz
14
- Zjg3OTAyYTI3OWYyMDJmODY5NTMwNzE3Nzg1OTBhYjg1ZmE4NTVmODE2OGE1
15
- Njc4MjRkYmEyNDBmZDVlN2E5YzMxMjI5OTlmNDg1MjU4ZjA3M2Q=
13
+ NTc2YmYwZWExNjZiNDdmMDlhNWM3NTc4NTk0OGQ3NTJkZTEzODYyYWM2NjVh
14
+ ZGY3MWM0MTRhOTQ5N2Q3MjM1YTVkZWU1MzVjOWQ1M2ZkZTg1MTljODdkYmYw
15
+ OTZlMzY4MDQ5MWYzYWI0YmY4Nzg4NTQ0YTRmODhlOThmNDQ5Mjk=
@@ -2,5 +2,5 @@
2
2
 
3
3
  info() {
4
4
  message=$1;
5
- echo -e "\n\n\033[32m${message}\033[0m";
5
+ echo -e "\033[32m${message}\033[0m";
6
6
  }
@@ -0,0 +1,33 @@
1
+ #!/bin/bash -le
2
+
3
+ . $BRICKS_HOME/builder
4
+
5
+ builder() {
6
+ eval $BRICKY_ENTRYPOINTS
7
+ }
8
+
9
+ builder_source() {
10
+ scripts=$(echo $BRICKY_ENTRYPOINTS | tr " && " "\n")
11
+ cat $scripts > /tmp/builderplan
12
+ grep -v "bin/bash" /tmp/builderplan | more
13
+ }
14
+
15
+ shell() {
16
+ export -f builder
17
+ export -f builder_source
18
+
19
+ info "\n\nType 'builder' to build the project :p"
20
+ info "Type 'builder_source' to see the bricks compilation :p\n\n"
21
+ /bin/bash
22
+ }
23
+
24
+ start() {
25
+ if [[ "$BRICKY_ENTRYPOINTS_SHELL" == "true" ]]
26
+ then
27
+ shell
28
+ else
29
+ builder
30
+ fi
31
+ }
32
+
33
+ start
@@ -1,2 +1,16 @@
1
- FROM locaweb/wheezy:development
1
+ # The image locaweb/wheezy-ruby2x contains the following packages:
2
+ # locaweb's: ruby, ruby-dev, and bundler packages, and a lots of
3
+ # tools inherits from wheezy:development, ex: build-essential.
4
+ FROM locaweb/wheezy-ruby2x:development
2
5
  MAINTAINER bricky
6
+
7
+ # Small dependencies cheatsheet:
8
+ #
9
+ # sqlite: sqlite3, libsqlite3-dev
10
+ # nokogiri: libxml2-dev libxslt-dev
11
+ # mysql: libmysqlclient-dev
12
+ # sqlserver: freetds-dev
13
+ # postgresql: libpq-dev
14
+
15
+ # RUN apt-get update
16
+ # RUN apt-get install --no-install-recommends -y --force-yes <your-deps-here>
@@ -1,3 +1,4 @@
1
+ require "digest"
1
2
  require "fileutils"
2
3
 
3
4
  module Bricky
@@ -10,17 +10,21 @@ module Bricky
10
10
  class Command < Thor
11
11
  desc :install, "copy configuration files"
12
12
  def install
13
- Bricky::Commands::Install.new.execute
13
+ command = Bricky::Commands::Install.new
14
+ command.execute
14
15
  end
15
16
 
16
17
  desc :bootstrap, "bootstrap project images"
17
18
  def bootstrap
18
- Bricky::Commands::Bootstrap.execute
19
+ command = Bricky::Commands::Bootstrap.new
20
+ command.execute
19
21
  end
20
22
 
21
23
  desc :builder, "build project"
24
+ method_option :shell, :type => :boolean, :aliases => "-s"
22
25
  def builder
23
- Bricky::Commands::Builder.execute
26
+ command = Bricky::Commands::Builder.new(options)
27
+ command.execute
24
28
  end
25
29
  end
26
30
  end
@@ -3,9 +3,7 @@ require "fileutils"
3
3
 
4
4
  module Bricky
5
5
  module Commands
6
- module Bootstrap
7
- extend self
8
-
6
+ class Bootstrap
9
7
  def execute
10
8
  puts "Boostraping images".colorize(:light_blue)
11
9
  images.each {|image| build(image)}
@@ -17,7 +15,7 @@ module Bricky
17
15
  hack = command(image.name, create_hack_image(image))
18
16
 
19
17
  [base, hack].each do |code|
20
- puts "Processing #{name} image: ".colorize(:blue) + code
18
+ puts "Processing '#{image.name}' image: ".colorize(:blue) + code
21
19
 
22
20
  unless system(code)
23
21
  puts "~~~~~~~~~~~ Problems building image ~~~~~~~~~~~".colorize(:white).on_red
@@ -2,8 +2,12 @@ require "bricky/bricks"
2
2
 
3
3
  module Bricky
4
4
  module Commands
5
- module Builder
6
- extend self
5
+ class Builder
6
+ attr_accessor :options
7
+
8
+ def initialize(options)
9
+ @options = options
10
+ end
7
11
 
8
12
  def execute
9
13
  puts "Building Project".colorize(:light_blue)
@@ -11,8 +15,8 @@ module Bricky
11
15
  end
12
16
 
13
17
  private
14
- def build(image)
15
- code = command(image)
18
+ def build(images)
19
+ code = command(images)
16
20
  puts format(code)
17
21
 
18
22
  unless system(code)
@@ -24,12 +28,7 @@ module Bricky
24
28
  end
25
29
 
26
30
  def command(image)
27
- bricks = Bricky::Bricks.resolve
28
- envs = bricks.collect(&:environments).uniq.join(" ")
29
- arguments = bricks.collect(&:arguments).uniq.join(" ")
30
- entrypoints = bricks.collect(&:entrypoint).compact.uniq.join(" && ")
31
-
32
- "docker run #{envs} #{arguments} -i -t #{image.name} /bin/bash -l -c '#{entrypoints}'"
31
+ "docker run #{envs} #{arguments} -i -t #{image.name} /bricks/helper/start"
33
32
  end
34
33
 
35
34
  def format(command)
@@ -37,6 +36,25 @@ module Bricky
37
36
  result.split(param).join("\n\t #{param}")
38
37
  end
39
38
  end
39
+
40
+ def bricks
41
+ @bricks ||= Bricky::Bricks.resolve
42
+ end
43
+
44
+ def envs
45
+ environments = bricks.collect(&:environments)
46
+ environments << "-e BRICKY_ENTRYPOINTS='#{entrypoints}'"
47
+ environments << "-e BRICKY_ENTRYPOINTS_SHELL=#{options.fetch("shell", false)}"
48
+ environments.join(" ")
49
+ end
50
+
51
+ def arguments
52
+ args = bricks.collect(&:arguments).uniq.join(" ")
53
+ end
54
+
55
+ def entrypoints
56
+ bricks.collect(&:entrypoint).compact.uniq.join(" && ")
57
+ end
40
58
  end
41
59
  end
42
60
  end
@@ -1,3 +1,3 @@
1
1
  module Bricky
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
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.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - andrerocker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-11 00:00:00.000000000 Z
11
+ date: 2015-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -92,6 +92,7 @@ files:
92
92
  - etc/bricks/bundle/builder
93
93
  - etc/bricks/debian/builder
94
94
  - etc/bricks/helper/builder
95
+ - etc/bricks/helper/start
95
96
  - etc/bricks/helper/suexec
96
97
  - etc/bricks/mounts/builder
97
98
  - etc/hacker/id_container/Dockerfile