bricky 0.0.7 → 0.0.8

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
- 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