bricky 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/bricky/command.rb +22 -8
- data/lib/bricky/commands/base.rb +13 -0
- data/lib/bricky/commands/bootstrap.rb +1 -1
- data/lib/bricky/commands/builder.rb +1 -7
- data/lib/bricky/commands/install.rb +17 -9
- data/lib/bricky/requirements.rb +23 -0
- data/lib/bricky/setup.rb +4 -1
- data/lib/bricky/version.rb +1 -1
- metadata +6 -5
- data/lib/bricky/package.rb +0 -21
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
NjZmNGY2NGQwMzE4NDlhYzcxZmQxMWRiZjM0ZTU4MGNmMjcyYjdlMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
OTA0ODM2ZGQwYzZiMWUxOTI2OWZkOTNlYmU3MzkyNTExNzZlY2Q2Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NjBiYWFiNzM1YTk4NmEyM2M3ZmI1ZDFhY2Q3OTFmM2NmZDU3YjI1ODA4ZmEx
|
10
|
+
MTY0N2RlNTQ1ZTMwMjJjOGNlYjAyYzkwOGE0YTUwMjMwNjAxM2VjYjYxYzY1
|
11
|
+
ZTkxZDg4NjYyZTEzNWI3OGVmZTYxMTgyMzY4MTE5N2Y2ZDI3MjM=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NDcyN2UxYzNjMTNjMTYxOWFlZmE0MTQzZWY0YmQ4Zjk2MWEwMzYwZTQ4OTNj
|
14
|
+
MWM0MGYxNDA5ZDA3ZmQ4Nzg1YWNmMGM4OTNmZjNiNjI2YzRjN2E5MzRkMGZl
|
15
|
+
MzY0YTM1NTc3MDRiNzEyMjc5NjhlNjQ2MmE0YTY0ODVkNWJhMDM=
|
data/lib/bricky/command.rb
CHANGED
@@ -2,29 +2,43 @@ require "thor"
|
|
2
2
|
require "ostruct"
|
3
3
|
require "colorize"
|
4
4
|
|
5
|
+
require "bricky/requirements"
|
6
|
+
require "bricky/commands/base"
|
5
7
|
require "bricky/commands/install"
|
6
8
|
require "bricky/commands/builder"
|
7
9
|
require "bricky/commands/bootstrap"
|
8
10
|
|
9
11
|
module Bricky
|
10
12
|
class Command < Thor
|
11
|
-
desc :install, "
|
13
|
+
desc :install, "install configuration files"
|
12
14
|
def install
|
13
|
-
|
14
|
-
command.execute
|
15
|
+
dispatch(:install)
|
15
16
|
end
|
16
17
|
|
17
|
-
desc :bootstrap, "bootstrap
|
18
|
+
desc :bootstrap, "bootstrap builder images"
|
18
19
|
def bootstrap
|
19
|
-
|
20
|
-
|
20
|
+
requirements.check_and_execute do
|
21
|
+
dispatch(:bootstrap)
|
22
|
+
end
|
21
23
|
end
|
22
24
|
|
23
25
|
desc :builder, "build project"
|
24
26
|
method_option :shell, :type => :boolean, :aliases => "-s"
|
25
27
|
def builder
|
26
|
-
|
27
|
-
|
28
|
+
requirements.check_and_execute do
|
29
|
+
dispatch(:builder)
|
30
|
+
end
|
28
31
|
end
|
32
|
+
|
33
|
+
private
|
34
|
+
def requirements
|
35
|
+
Bricky::Requirements.new
|
36
|
+
end
|
37
|
+
|
38
|
+
def dispatch(name)
|
39
|
+
clazz = Kernel.const_get("Bricky::Commands::#{name.to_s.capitalize}")
|
40
|
+
command = clazz.new(options)
|
41
|
+
command.execute
|
42
|
+
end
|
29
43
|
end
|
30
44
|
end
|
@@ -2,13 +2,7 @@ require "bricky/bricks"
|
|
2
2
|
|
3
3
|
module Bricky
|
4
4
|
module Commands
|
5
|
-
class Builder
|
6
|
-
attr_accessor :options
|
7
|
-
|
8
|
-
def initialize(options)
|
9
|
-
@options = options
|
10
|
-
end
|
11
|
-
|
5
|
+
class Builder < Base
|
12
6
|
def execute
|
13
7
|
puts "Building Project".colorize(:light_blue)
|
14
8
|
build(Bricky::Image.new("builder"))
|
@@ -1,16 +1,24 @@
|
|
1
1
|
module Bricky
|
2
2
|
module Commands
|
3
|
-
class Install <
|
4
|
-
include Thor::Actions
|
5
|
-
|
3
|
+
class Install < Base
|
6
4
|
def execute
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
installer = InstallThor.new
|
6
|
+
installer.execute
|
7
|
+
end
|
8
|
+
|
9
|
+
# Inner class :( just to work with thor
|
10
|
+
class InstallThor < Thor::Group
|
11
|
+
include Thor::Actions
|
12
|
+
|
13
|
+
def execute
|
14
|
+
puts "Setup bricky configuration files".colorize(:light_blue)
|
15
|
+
directory "bricky"
|
16
|
+
copy_file "Brickyfile"
|
17
|
+
end
|
11
18
|
|
12
|
-
|
13
|
-
|
19
|
+
def self.source_root
|
20
|
+
File.expand_path("../../../../etc/templates", __FILE__)
|
21
|
+
end
|
14
22
|
end
|
15
23
|
end
|
16
24
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Bricky
|
2
|
+
class Requirements
|
3
|
+
def check_and_execute
|
4
|
+
if pending_requirements
|
5
|
+
print "Make sure you have the following requirements: "
|
6
|
+
puts requirements.join(',').colorize(:red)
|
7
|
+
else
|
8
|
+
yield
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
def requirements
|
14
|
+
["docker"]
|
15
|
+
end
|
16
|
+
|
17
|
+
def pending_requirements
|
18
|
+
requirements.detect do |command|
|
19
|
+
not system("which #{command} > /dev/null 2>&1")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/bricky/setup.rb
CHANGED
@@ -9,10 +9,13 @@ module Bricky
|
|
9
9
|
|
10
10
|
private
|
11
11
|
def self.from_brickyfile
|
12
|
-
configuration = "#{Dir.pwd}/Brickyfile"
|
13
12
|
if File.exists?(configuration)
|
14
13
|
eval(open("#{Dir.pwd}/Brickyfile").read)
|
15
14
|
end
|
16
15
|
end
|
16
|
+
|
17
|
+
def self.configuration
|
18
|
+
"#{Dir.pwd}/Brickyfile"
|
19
|
+
end
|
17
20
|
end
|
18
21
|
end
|
data/lib/bricky/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bricky
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- andrerocker
|
@@ -80,7 +80,7 @@ dependencies:
|
|
80
80
|
- - ~>
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.7.7
|
83
|
-
description:
|
83
|
+
description: a smart way to build software packages
|
84
84
|
email:
|
85
85
|
- andre.souza@gmail.com
|
86
86
|
executables:
|
@@ -108,15 +108,16 @@ files:
|
|
108
108
|
- lib/bricky/bricks/mounts.rb
|
109
109
|
- lib/bricky/bricks/ruby.rb
|
110
110
|
- lib/bricky/command.rb
|
111
|
+
- lib/bricky/commands/base.rb
|
111
112
|
- lib/bricky/commands/bootstrap.rb
|
112
113
|
- lib/bricky/commands/builder.rb
|
113
114
|
- lib/bricky/commands/install.rb
|
114
115
|
- lib/bricky/config.rb
|
115
116
|
- lib/bricky/image.rb
|
116
|
-
- lib/bricky/
|
117
|
+
- lib/bricky/requirements.rb
|
117
118
|
- lib/bricky/setup.rb
|
118
119
|
- lib/bricky/version.rb
|
119
|
-
homepage: http://
|
120
|
+
homepage: http://github.com/andrerocker/bricky
|
120
121
|
licenses:
|
121
122
|
- MIT
|
122
123
|
metadata: {}
|
@@ -139,5 +140,5 @@ rubyforge_project:
|
|
139
140
|
rubygems_version: 2.4.4
|
140
141
|
signing_key:
|
141
142
|
specification_version: 4
|
142
|
-
summary: a
|
143
|
+
summary: a smart way to build software packages
|
143
144
|
test_files: []
|
data/lib/bricky/package.rb
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
module Bricky
|
2
|
-
class Package
|
3
|
-
attr_accessor :image
|
4
|
-
|
5
|
-
def initialize(image)
|
6
|
-
self.image = image
|
7
|
-
end
|
8
|
-
|
9
|
-
project_path = File.expand_path(".")
|
10
|
-
builded_path = File.expand_path(Bricky.config.package.build)
|
11
|
-
cachedz_path = File.expand_path(Bricky.config.package.cache)
|
12
|
-
|
13
|
-
def script
|
14
|
-
"#{script_path}/#{image.name}"
|
15
|
-
end
|
16
|
-
|
17
|
-
def script_path
|
18
|
-
"#{Bricky.config.full_scripts_path}/#{Bricky.config.package.output}"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|