farmstead 0.0.12 → 0.0.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -30
- data/Gemfile.lock +9 -193
- data/bin/farmstead +2 -2
- data/farmstead.gemspec +9 -1
- data/lib/farmstead/cli/test.rb +15 -0
- data/lib/farmstead/cli.rb +7 -36
- data/lib/farmstead/project.rb +48 -4
- data/lib/farmstead/scaffold/.dockerignore.erb +1 -0
- data/lib/farmstead/scaffold/Dockerfile.erb +4 -4
- data/lib/farmstead/scaffold/Gemfile.erb +1 -0
- data/lib/farmstead/scaffold/docker-compose.yml.erb +14 -23
- data/lib/farmstead/scaffold/exec.sh.erb +6 -11
- data/lib/farmstead/scaffold/extract/extracter.rb.erb +1 -1
- data/lib/farmstead/scaffold/load/{loader.rb → loader.rb.erb} +1 -1
- data/lib/farmstead/scaffold/project.rb.erb +3 -3
- data/lib/farmstead/scaffold/project.yml.erb +12 -17
- data/lib/farmstead/scaffold/supervisord.conf.erb +2 -2
- data/lib/farmstead/scaffold/transform/{transformer.rb → transformer.rb.erb} +1 -1
- data/lib/farmstead/version.rb +1 -1
- metadata +117 -5
- data/lib/farmstead/scaffold/.env.erb +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef85cd392e71bdf7c32476b6a634a0ca4e44dda0
|
4
|
+
data.tar.gz: 9ec2c783a0e9017a5882111eba637ee0aeadf211
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1b61fb70a83de20ca7e486fa81981927be8491d8cae90db4fff6894aaf8e3cb58eb357c5f711b59e8010bc825c03aa3118a5b9340e8719466cbcfa40701d946
|
7
|
+
data.tar.gz: 622a51e648d93f17cae802ca8513afba6ed0e1869ac643d5a06254322c65a0d2611d99badcefd3d228ee021e769d00c81da838f3f3e2276567814c24efbc4b10
|
data/Gemfile
CHANGED
@@ -3,33 +3,4 @@ source "https://rubygems.org"
|
|
3
3
|
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in farmstead.gemspec
|
6
|
-
gemspec
|
7
|
-
|
8
|
-
gem "coffee-rails", "~> 4.2"
|
9
|
-
gem "httparty", "~> 0.15.6"
|
10
|
-
gem "jbuilder", "~> 2.5"
|
11
|
-
gem "jquery-rails", "~> 4.3.1"
|
12
|
-
gem "mechanize", "~> 2.7.5"
|
13
|
-
gem "mysql2", "~> 0.4.10"
|
14
|
-
gem "nokogiri", "~> 1.8.1"
|
15
|
-
gem "omniauth-auth0", "~> 2.0.0"
|
16
|
-
gem "puma", "~> 3.0"
|
17
|
-
gem "rails", "~> 5.0.0"
|
18
|
-
gem "ruby-kafka", "~> 0.5.1"
|
19
|
-
gem "sass-rails", "~> 5.0"
|
20
|
-
gem "turbolinks", "~> 5"
|
21
|
-
gem "uglifier", ">= 1.3.0"
|
22
|
-
gem "watir", "~> 6.10"
|
23
|
-
|
24
|
-
group :development, :test do
|
25
|
-
gem "byebug", platform: :mri
|
26
|
-
end
|
27
|
-
|
28
|
-
group :development do
|
29
|
-
gem "dotenv", "~> 0.11.1"
|
30
|
-
gem "listen", "~> 3.0.5"
|
31
|
-
gem "pry"
|
32
|
-
gem "spring"
|
33
|
-
gem "spring-watcher-listen", "~> 2.0.0"
|
34
|
-
gem "web-console"
|
35
|
-
end
|
6
|
+
gemspec
|
data/Gemfile.lock
CHANGED
@@ -1,101 +1,32 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
farmstead (0.0.
|
4
|
+
farmstead (0.0.14)
|
5
|
+
httparty (~> 0.15.6)
|
6
|
+
mechanize (~> 2.7)
|
7
|
+
mysql2 (~> 0.4.10)
|
8
|
+
nokogiri (~> 1.8)
|
9
|
+
os (~> 1.0)
|
10
|
+
ruby-kafka (~> 0.5.1)
|
5
11
|
thor (~> 0.20.0)
|
6
12
|
|
7
13
|
GEM
|
8
14
|
remote: https://rubygems.org/
|
9
15
|
specs:
|
10
|
-
actioncable (5.0.6)
|
11
|
-
actionpack (= 5.0.6)
|
12
|
-
nio4r (>= 1.2, < 3.0)
|
13
|
-
websocket-driver (~> 0.6.1)
|
14
|
-
actionmailer (5.0.6)
|
15
|
-
actionpack (= 5.0.6)
|
16
|
-
actionview (= 5.0.6)
|
17
|
-
activejob (= 5.0.6)
|
18
|
-
mail (~> 2.5, >= 2.5.4)
|
19
|
-
rails-dom-testing (~> 2.0)
|
20
|
-
actionpack (5.0.6)
|
21
|
-
actionview (= 5.0.6)
|
22
|
-
activesupport (= 5.0.6)
|
23
|
-
rack (~> 2.0)
|
24
|
-
rack-test (~> 0.6.3)
|
25
|
-
rails-dom-testing (~> 2.0)
|
26
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
27
|
-
actionview (5.0.6)
|
28
|
-
activesupport (= 5.0.6)
|
29
|
-
builder (~> 3.1)
|
30
|
-
erubis (~> 2.7.0)
|
31
|
-
rails-dom-testing (~> 2.0)
|
32
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
33
|
-
activejob (5.0.6)
|
34
|
-
activesupport (= 5.0.6)
|
35
|
-
globalid (>= 0.3.6)
|
36
|
-
activemodel (5.0.6)
|
37
|
-
activesupport (= 5.0.6)
|
38
|
-
activerecord (5.0.6)
|
39
|
-
activemodel (= 5.0.6)
|
40
|
-
activesupport (= 5.0.6)
|
41
|
-
arel (~> 7.0)
|
42
|
-
activesupport (5.0.6)
|
43
|
-
concurrent-ruby (~> 1.0, >= 1.0.2)
|
44
|
-
i18n (~> 0.7)
|
45
|
-
minitest (~> 5.1)
|
46
|
-
tzinfo (~> 1.1)
|
47
|
-
arel (7.1.4)
|
48
|
-
bindex (0.5.0)
|
49
|
-
builder (3.2.3)
|
50
|
-
byebug (9.1.0)
|
51
|
-
childprocess (0.8.0)
|
52
|
-
ffi (~> 1.0, >= 1.0.11)
|
53
|
-
coderay (1.1.2)
|
54
|
-
coffee-rails (4.2.2)
|
55
|
-
coffee-script (>= 2.2.0)
|
56
|
-
railties (>= 4.0.0)
|
57
|
-
coffee-script (2.4.1)
|
58
|
-
coffee-script-source
|
59
|
-
execjs
|
60
|
-
coffee-script-source (1.12.2)
|
61
|
-
concurrent-ruby (1.0.5)
|
62
|
-
crass (1.0.3)
|
63
16
|
diff-lcs (1.3)
|
64
17
|
domain_name (0.5.20170404)
|
65
18
|
unf (>= 0.0.5, < 1.0.0)
|
66
19
|
dotenv (0.11.1)
|
67
20
|
dotenv-deployment (~> 0.0.2)
|
68
21
|
dotenv-deployment (0.0.2)
|
69
|
-
erubis (2.7.0)
|
70
|
-
execjs (2.7.0)
|
71
|
-
faraday (0.12.2)
|
72
|
-
multipart-post (>= 1.2, < 3)
|
73
22
|
ffi (1.9.18)
|
74
|
-
globalid (0.4.1)
|
75
|
-
activesupport (>= 4.2.0)
|
76
|
-
hashie (3.5.7)
|
77
23
|
http-cookie (1.0.3)
|
78
24
|
domain_name (~> 0.5)
|
79
25
|
httparty (0.15.6)
|
80
26
|
multi_xml (>= 0.5.2)
|
81
|
-
i18n (0.9.1)
|
82
|
-
concurrent-ruby (~> 1.0)
|
83
|
-
jbuilder (2.7.0)
|
84
|
-
activesupport (>= 4.2.0)
|
85
|
-
multi_json (>= 1.2)
|
86
|
-
jquery-rails (4.3.1)
|
87
|
-
rails-dom-testing (>= 1, < 3)
|
88
|
-
railties (>= 4.2.0)
|
89
|
-
thor (>= 0.14, < 2.0)
|
90
|
-
jwt (1.5.6)
|
91
27
|
listen (3.0.8)
|
92
28
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
93
29
|
rb-inotify (~> 0.9, >= 0.9.7)
|
94
|
-
loofah (2.1.1)
|
95
|
-
crass (~> 1.0.2)
|
96
|
-
nokogiri (>= 1.5.9)
|
97
|
-
mail (2.7.0)
|
98
|
-
mini_mime (>= 0.1.1)
|
99
30
|
mechanize (2.7.5)
|
100
31
|
domain_name (~> 0.5, >= 0.5.1)
|
101
32
|
http-cookie (~> 1.0)
|
@@ -105,67 +36,18 @@ GEM
|
|
105
36
|
nokogiri (~> 1.6)
|
106
37
|
ntlm-http (~> 0.1, >= 0.1.1)
|
107
38
|
webrobots (>= 0.0.9, < 0.2)
|
108
|
-
method_source (0.9.0)
|
109
39
|
mime-types (3.1)
|
110
40
|
mime-types-data (~> 3.2015)
|
111
41
|
mime-types-data (3.2016.0521)
|
112
|
-
mini_mime (1.0.0)
|
113
42
|
mini_portile2 (2.3.0)
|
114
|
-
minitest (5.10.3)
|
115
|
-
multi_json (1.12.2)
|
116
43
|
multi_xml (0.6.0)
|
117
|
-
multipart-post (2.0.0)
|
118
44
|
mysql2 (0.4.10)
|
119
45
|
net-http-digest_auth (1.4.1)
|
120
46
|
net-http-persistent (2.9.4)
|
121
|
-
nio4r (2.2.0)
|
122
47
|
nokogiri (1.8.1)
|
123
48
|
mini_portile2 (~> 2.3.0)
|
124
49
|
ntlm-http (0.1.1)
|
125
|
-
|
126
|
-
faraday (>= 0.8, < 0.13)
|
127
|
-
jwt (~> 1.0)
|
128
|
-
multi_json (~> 1.3)
|
129
|
-
multi_xml (~> 0.5)
|
130
|
-
rack (>= 1.2, < 3)
|
131
|
-
omniauth (1.8.1)
|
132
|
-
hashie (>= 3.4.6, < 3.6.0)
|
133
|
-
rack (>= 1.6.2, < 3)
|
134
|
-
omniauth-auth0 (2.0.0)
|
135
|
-
omniauth-oauth2 (~> 1.4)
|
136
|
-
omniauth-oauth2 (1.5.0)
|
137
|
-
oauth2 (~> 1.1)
|
138
|
-
omniauth (~> 1.2)
|
139
|
-
pry (0.11.3)
|
140
|
-
coderay (~> 1.1.0)
|
141
|
-
method_source (~> 0.9.0)
|
142
|
-
puma (3.11.0)
|
143
|
-
rack (2.0.3)
|
144
|
-
rack-test (0.6.3)
|
145
|
-
rack (>= 1.0)
|
146
|
-
rails (5.0.6)
|
147
|
-
actioncable (= 5.0.6)
|
148
|
-
actionmailer (= 5.0.6)
|
149
|
-
actionpack (= 5.0.6)
|
150
|
-
actionview (= 5.0.6)
|
151
|
-
activejob (= 5.0.6)
|
152
|
-
activemodel (= 5.0.6)
|
153
|
-
activerecord (= 5.0.6)
|
154
|
-
activesupport (= 5.0.6)
|
155
|
-
bundler (>= 1.3.0)
|
156
|
-
railties (= 5.0.6)
|
157
|
-
sprockets-rails (>= 2.0.0)
|
158
|
-
rails-dom-testing (2.0.3)
|
159
|
-
activesupport (>= 4.2.0)
|
160
|
-
nokogiri (>= 1.6)
|
161
|
-
rails-html-sanitizer (1.0.3)
|
162
|
-
loofah (~> 2.0)
|
163
|
-
railties (5.0.6)
|
164
|
-
actionpack (= 5.0.6)
|
165
|
-
activesupport (= 5.0.6)
|
166
|
-
method_source
|
167
|
-
rake (>= 0.8.7)
|
168
|
-
thor (>= 0.18.1, < 2.0)
|
50
|
+
os (1.0.0)
|
169
51
|
rake (10.5.0)
|
170
52
|
rb-fsevent (0.10.2)
|
171
53
|
rb-inotify (0.9.10)
|
@@ -184,88 +66,22 @@ GEM
|
|
184
66
|
rspec-support (~> 3.7.0)
|
185
67
|
rspec-support (3.7.0)
|
186
68
|
ruby-kafka (0.5.1)
|
187
|
-
rubyzip (1.2.1)
|
188
|
-
sass (3.5.4)
|
189
|
-
sass-listen (~> 4.0.0)
|
190
|
-
sass-listen (4.0.0)
|
191
|
-
rb-fsevent (~> 0.9, >= 0.9.4)
|
192
|
-
rb-inotify (~> 0.9, >= 0.9.7)
|
193
|
-
sass-rails (5.0.7)
|
194
|
-
railties (>= 4.0.0, < 6)
|
195
|
-
sass (~> 3.1)
|
196
|
-
sprockets (>= 2.8, < 4.0)
|
197
|
-
sprockets-rails (>= 2.0, < 4.0)
|
198
|
-
tilt (>= 1.1, < 3)
|
199
|
-
selenium-webdriver (3.8.0)
|
200
|
-
childprocess (~> 0.5)
|
201
|
-
rubyzip (~> 1.0)
|
202
|
-
spring (2.0.2)
|
203
|
-
activesupport (>= 4.2)
|
204
|
-
spring-watcher-listen (2.0.1)
|
205
|
-
listen (>= 2.7, < 4.0)
|
206
|
-
spring (>= 1.2, < 3.0)
|
207
|
-
sprockets (3.7.1)
|
208
|
-
concurrent-ruby (~> 1.0)
|
209
|
-
rack (> 1, < 3)
|
210
|
-
sprockets-rails (3.2.1)
|
211
|
-
actionpack (>= 4.0)
|
212
|
-
activesupport (>= 4.0)
|
213
|
-
sprockets (>= 3.0.0)
|
214
69
|
thor (0.20.0)
|
215
|
-
thread_safe (0.3.6)
|
216
|
-
tilt (2.0.8)
|
217
|
-
turbolinks (5.0.1)
|
218
|
-
turbolinks-source (~> 5)
|
219
|
-
turbolinks-source (5.0.3)
|
220
|
-
tzinfo (1.2.4)
|
221
|
-
thread_safe (~> 0.1)
|
222
|
-
uglifier (4.1.0)
|
223
|
-
execjs (>= 0.3.0, < 3)
|
224
70
|
unf (0.1.4)
|
225
71
|
unf_ext
|
226
72
|
unf_ext (0.0.7.4)
|
227
|
-
watir (6.10.2)
|
228
|
-
selenium-webdriver (~> 3.4, >= 3.4.1)
|
229
|
-
web-console (3.5.1)
|
230
|
-
actionview (>= 5.0)
|
231
|
-
activemodel (>= 5.0)
|
232
|
-
bindex (>= 0.4.0)
|
233
|
-
railties (>= 5.0)
|
234
73
|
webrobots (0.1.2)
|
235
|
-
websocket-driver (0.6.5)
|
236
|
-
websocket-extensions (>= 0.1.0)
|
237
|
-
websocket-extensions (0.1.3)
|
238
74
|
|
239
75
|
PLATFORMS
|
240
76
|
ruby
|
241
77
|
|
242
78
|
DEPENDENCIES
|
243
79
|
bundler (~> 1.16)
|
244
|
-
byebug
|
245
|
-
coffee-rails (~> 4.2)
|
246
80
|
dotenv (~> 0.11.1)
|
247
81
|
farmstead!
|
248
|
-
|
249
|
-
jbuilder (~> 2.5)
|
250
|
-
jquery-rails (~> 4.3.1)
|
251
|
-
listen (~> 3.0.5)
|
252
|
-
mechanize (~> 2.7.5)
|
253
|
-
mysql2 (~> 0.4.10)
|
254
|
-
nokogiri (~> 1.8.1)
|
255
|
-
omniauth-auth0 (~> 2.0.0)
|
256
|
-
pry
|
257
|
-
puma (~> 3.0)
|
258
|
-
rails (~> 5.0.0)
|
82
|
+
listen (~> 3.0)
|
259
83
|
rake (~> 10.0)
|
260
84
|
rspec (~> 3.0)
|
261
|
-
ruby-kafka (~> 0.5.1)
|
262
|
-
sass-rails (~> 5.0)
|
263
|
-
spring
|
264
|
-
spring-watcher-listen (~> 2.0.0)
|
265
|
-
turbolinks (~> 5)
|
266
|
-
uglifier (>= 1.3.0)
|
267
|
-
watir (~> 6.10)
|
268
|
-
web-console
|
269
85
|
|
270
86
|
BUNDLED WITH
|
271
87
|
1.16.1
|
data/bin/farmstead
CHANGED
data/farmstead.gemspec
CHANGED
@@ -23,8 +23,16 @@ Gem::Specification.new do |spec|
|
|
23
23
|
spec.executables = ['farmstead']
|
24
24
|
spec.require_paths = ["lib"]
|
25
25
|
|
26
|
-
spec.
|
26
|
+
spec.add_runtime_dependency "thor", "~> 0.20.0"
|
27
|
+
spec.add_runtime_dependency "os", "~> 1.0"
|
28
|
+
spec.add_runtime_dependency "ruby-kafka", "~> 0.5.1"
|
29
|
+
spec.add_runtime_dependency "mysql2", "~> 0.4.10"
|
30
|
+
spec.add_runtime_dependency "nokogiri", "~> 1.8"
|
31
|
+
spec.add_runtime_dependency "mechanize", "~> 2.7"
|
32
|
+
spec.add_runtime_dependency "httparty", "~> 0.15.6"
|
27
33
|
|
34
|
+
spec.add_development_dependency "dotenv", "~> 0.11.1"
|
35
|
+
spec.add_development_dependency "listen", "~> 3.0"
|
28
36
|
spec.add_development_dependency "bundler", "~> 1.16"
|
29
37
|
spec.add_development_dependency "rake", "~> 10.0"
|
30
38
|
spec.add_development_dependency "rspec", "~> 3.0"
|
data/lib/farmstead/cli.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
require "thor"
|
2
|
-
|
2
|
+
require "farmstead/cli/test"
|
3
3
|
|
4
4
|
module Farmstead
|
5
|
-
class
|
5
|
+
class HammerTime < Thor
|
6
6
|
class_option :verbose, aliases: "--v", type: "boolean", desc: "Be verbose"
|
7
7
|
class_option :config, aliases: "-c", type: "string", desc: "Config file"
|
8
8
|
class_option :database, aliases: "-d", type: "string", desc: "Database"
|
@@ -23,42 +23,13 @@ module Farmstead
|
|
23
23
|
project.create
|
24
24
|
end
|
25
25
|
|
26
|
-
desc "
|
27
|
-
def
|
28
|
-
|
29
|
-
instance.send(command)
|
26
|
+
desc "deploy", "Deploys a project"
|
27
|
+
def deploy
|
28
|
+
Farmstead::Project.deploy
|
30
29
|
end
|
31
30
|
|
32
|
-
desc "
|
33
|
-
|
34
|
-
instance = Farmstead::Scarecrow.new
|
35
|
-
instance.send(command)
|
36
|
-
end
|
37
|
-
|
38
|
-
desc "cowardlylion command", "Send a command to cowardlylion"
|
39
|
-
def cowardlylion(command)
|
40
|
-
instance = Farmstead::Cowardlylion.new
|
41
|
-
instance.send(command)
|
42
|
-
end
|
43
|
-
|
44
|
-
desc "glenda command", "Send a command to glenda"
|
45
|
-
def glenda(command)
|
46
|
-
instance = Farmstead::Glenda.new
|
47
|
-
instance.send(command)
|
48
|
-
end
|
49
|
-
|
50
|
-
desc "foo", "Test foo"
|
51
|
-
def foo
|
52
|
-
true
|
53
|
-
end
|
54
|
-
|
55
|
-
desc "bar", "Test bar"
|
56
|
-
def bar
|
57
|
-
true
|
58
|
-
end
|
59
|
-
|
60
|
-
# desc "net COMMANDS", "Net control Module"
|
61
|
-
# subcommand "net", Socialinvestigator::CLI::Net
|
31
|
+
desc "test COMMANDS", "Test commands"
|
32
|
+
subcommand "test", Farmstead::CLITest
|
62
33
|
|
63
34
|
map "-v" => "version"
|
64
35
|
end
|
data/lib/farmstead/project.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require "erb"
|
2
2
|
require "net/http"
|
3
|
+
require "socket"
|
4
|
+
require "yaml"
|
5
|
+
require "os"
|
3
6
|
|
4
7
|
module Farmstead
|
5
8
|
# creates a Farmstead Project
|
@@ -14,8 +17,9 @@ module Farmstead
|
|
14
17
|
generate_files
|
15
18
|
end
|
16
19
|
|
17
|
-
def
|
18
|
-
Dir.chdir @name
|
20
|
+
def self.deploy
|
21
|
+
# Dir.chdir @name
|
22
|
+
self.read_yml_into_env
|
19
23
|
File.chmod(0755, "exec.sh")
|
20
24
|
system ("bash exec.sh")
|
21
25
|
end
|
@@ -26,9 +30,34 @@ module Farmstead
|
|
26
30
|
Dir.mkdir(@name)
|
27
31
|
end
|
28
32
|
|
33
|
+
# Takes the project.yml file and generates an .env file for docker
|
34
|
+
def self.read_yml_into_env
|
35
|
+
cnf = YAML::load(File.open('project.yml'))
|
36
|
+
File.open('.env', 'w') do |file|
|
37
|
+
cnf.each do |key, value|
|
38
|
+
if value.kind_of?(Array)
|
39
|
+
value.each do |element|
|
40
|
+
element.each do |ykey, yvalue|
|
41
|
+
if yvalue.kind_of?(Array)
|
42
|
+
element.each do |zkey, zvalue|
|
43
|
+
zvalue = zvalue.join(' ') if zvalue.kind_of?(Array)
|
44
|
+
file.puts "#{zkey}=#{zvalue}"
|
45
|
+
end
|
46
|
+
else
|
47
|
+
file.puts "#{ykey}=#{yvalue}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
else
|
52
|
+
file.puts "#{key}=#{value}"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
29
58
|
# Generate from templates in scaffold
|
30
59
|
def generate_files
|
31
|
-
ip =
|
60
|
+
ip = local_ip
|
32
61
|
scaffold_path = "#{File.dirname __FILE__}/scaffold"
|
33
62
|
scaffold = Dir.glob("#{scaffold_path}/**/*.erb", File::FNM_DOTMATCH)
|
34
63
|
scaffold.each do |file|
|
@@ -45,7 +74,22 @@ module Farmstead
|
|
45
74
|
end
|
46
75
|
end
|
47
76
|
|
48
|
-
def
|
77
|
+
def local_ip
|
78
|
+
addr_infos = Socket.getifaddrs
|
79
|
+
addr_infos.each do |addr_info|
|
80
|
+
if addr_info.addr && addr_info.addr.ipv4? && addr_info.name == interface_from_arch
|
81
|
+
return addr_info.addr.ip_address
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def interface_from_arch
|
87
|
+
return "Ethernet" if OS.windows?
|
88
|
+
return "en0" if OS.mac?
|
89
|
+
return "eth0" if OS.linux?
|
90
|
+
end
|
91
|
+
|
92
|
+
def public_ip
|
49
93
|
response = Net::HTTP.get(URI("http://v4.ifconfig.co/json"))
|
50
94
|
json = eval(response)
|
51
95
|
json[:ip]
|
@@ -14,11 +14,11 @@ RUN apt-get update -qq && \
|
|
14
14
|
rm -rf /var/cache/apk/*
|
15
15
|
|
16
16
|
## Setup Ruby
|
17
|
-
RUN mkdir /
|
18
|
-
WORKDIR /
|
19
|
-
ADD Gemfile* /
|
17
|
+
RUN mkdir /service
|
18
|
+
WORKDIR /service
|
19
|
+
ADD Gemfile* /service/
|
20
20
|
RUN gem install bundler && bundle install --jobs 20 --retry 5
|
21
|
-
ADD . /
|
21
|
+
ADD . /service
|
22
22
|
|
23
23
|
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
24
24
|
|
@@ -16,7 +16,7 @@ services:
|
|
16
16
|
kafka:
|
17
17
|
depends_on:
|
18
18
|
- 'zookeeper'
|
19
|
-
image: wurstmeister/kafka
|
19
|
+
image: wurstmeister/kafka
|
20
20
|
ports:
|
21
21
|
- '9092:9092'
|
22
22
|
env_file:
|
@@ -24,49 +24,40 @@ services:
|
|
24
24
|
volumes:
|
25
25
|
- /var/run/docker.sock:/var/run/docker.sock
|
26
26
|
|
27
|
-
|
27
|
+
manage:
|
28
28
|
depends_on:
|
29
29
|
- 'mysql'
|
30
|
-
build:
|
31
|
-
context: .
|
32
|
-
dockerfile: Dockerfile-dorothy
|
33
|
-
ports:
|
34
|
-
- '3000:3000'
|
35
|
-
env_file:
|
36
|
-
- '.env'
|
37
|
-
|
38
|
-
glenda:
|
39
|
-
depends_on:
|
40
|
-
- 'dorothy'
|
41
30
|
build: .
|
42
31
|
environment:
|
43
|
-
SERVICE:
|
32
|
+
SERVICE: manager
|
33
|
+
ports:
|
34
|
+
- '3000:3000'
|
44
35
|
env_file:
|
45
36
|
- '.env'
|
46
37
|
|
47
|
-
|
38
|
+
extract:
|
48
39
|
depends_on:
|
49
|
-
- '
|
40
|
+
- 'manage'
|
50
41
|
build: .
|
51
42
|
environment:
|
52
|
-
SERVICE:
|
43
|
+
SERVICE: extracter
|
53
44
|
env_file:
|
54
45
|
- '.env'
|
55
46
|
|
56
|
-
|
47
|
+
transform:
|
57
48
|
depends_on:
|
58
|
-
- '
|
49
|
+
- 'manage'
|
59
50
|
build: .
|
60
51
|
environment:
|
61
|
-
SERVICE:
|
52
|
+
SERVICE: transformer
|
62
53
|
env_file:
|
63
54
|
- '.env'
|
64
55
|
|
65
|
-
|
56
|
+
load:
|
66
57
|
depends_on:
|
67
|
-
- '
|
58
|
+
- 'manage'
|
68
59
|
build: .
|
69
60
|
environment:
|
70
|
-
SERVICE:
|
61
|
+
SERVICE: loader
|
71
62
|
env_file:
|
72
63
|
- '.env'
|
@@ -3,15 +3,16 @@
|
|
3
3
|
# Script to start Farmstead on Docker
|
4
4
|
|
5
5
|
echo "Cleaning up old environment"
|
6
|
-
docker-compose stop
|
7
|
-
docker-compose rm -f
|
6
|
+
docker-compose stop
|
7
|
+
docker-compose rm -f
|
8
|
+
docker volume prune -f
|
8
9
|
|
9
10
|
echo "Building new environment"
|
10
|
-
docker-compose build
|
11
|
+
docker-compose build
|
11
12
|
if [ $? -eq 0 ]; then
|
12
|
-
printf "\tBuild successsful"
|
13
|
+
printf "\tBuild successsful\n"
|
13
14
|
else
|
14
|
-
printf "\tBuild failed"
|
15
|
+
printf "\tBuild failed\n"
|
15
16
|
exit 1
|
16
17
|
fi
|
17
18
|
|
@@ -21,11 +22,5 @@ docker-compose up -d mysql zookeeper > /dev/null 2>&1
|
|
21
22
|
echo "Sleeping"
|
22
23
|
sleep 10
|
23
24
|
|
24
|
-
echo "Starting dorothy"
|
25
|
-
docker-compose up -d dorothy > /dev/null 2>&1
|
26
|
-
|
27
|
-
echo "Create and Seed MySQL DB"
|
28
|
-
docker-compose exec dorothy rails db:setup > /dev/null 2>&1
|
29
|
-
|
30
25
|
echo "Starting everything else"
|
31
26
|
docker-compose up -d > /dev/null 2>&1
|
@@ -5,7 +5,7 @@
|
|
5
5
|
# 1st - the class you want to call
|
6
6
|
# 2nd - the method you want to call
|
7
7
|
|
8
|
-
dynamic_class = ARGV[0]
|
8
|
+
dynamic_class = ARGV[0].capitalize
|
9
9
|
dynamic_method = ARGV[1]
|
10
10
|
|
11
11
|
# Extend Farmstead
|
@@ -16,10 +16,10 @@ require_relative "extract/extracter"
|
|
16
16
|
require_relative "load/loader"
|
17
17
|
require_relative "transform/transformer"
|
18
18
|
|
19
|
-
module
|
19
|
+
module <%= @name.capitalize %>
|
20
20
|
include Farmstead
|
21
21
|
end
|
22
22
|
|
23
|
-
klass = Object.const_get "
|
23
|
+
klass = Object.const_get "<%= @name.capitalize %>::#{dynamic_class}"
|
24
24
|
service = klass.new
|
25
25
|
service.send(dynamic_method)
|
@@ -1,17 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
- topics
|
14
|
-
- "Manage:1:1"
|
15
|
-
- "Extract:1:1"
|
16
|
-
- "Load:1:1"
|
17
|
-
- "Transform:1:1"
|
1
|
+
name: <%= @name %>
|
2
|
+
database:
|
3
|
+
- type: mysql
|
4
|
+
- MYSQL_ROOT_PASSWORD: Rc2$NE99p5%^
|
5
|
+
- MYSQL_DATABASE: farmstead
|
6
|
+
- MYSQL_USER: farmstead
|
7
|
+
- MYSQL_PASSWORD: farmstead
|
8
|
+
- MYSQL_HOST: mysql
|
9
|
+
kafka:
|
10
|
+
- KAFKA_ADVERTISED_HOST_NAME: <%= ip %>
|
11
|
+
- KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
|
12
|
+
- KAFKA_CREATE_TOPICS: "Manage:1:1,Extract:1:1,Load:1:1,Transform:1:1"
|
@@ -2,9 +2,9 @@
|
|
2
2
|
nodaemon=true
|
3
3
|
|
4
4
|
[program:producer]
|
5
|
-
command=/usr/local/bin/ruby /
|
5
|
+
command=/usr/local/bin/ruby /service/project.rb %(ENV_SERVICE)s producer
|
6
6
|
redirect_stderr=true
|
7
7
|
|
8
8
|
[program:consumer]
|
9
|
-
command=/usr/local/bin/ruby /
|
9
|
+
command=/usr/local/bin/ruby /service/project.rb %(ENV_SERVICE)s consumer
|
10
10
|
redirect_stderr=true
|
data/lib/farmstead/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: farmstead
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ken Jenney
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-01-
|
11
|
+
date: 2018-01-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -24,6 +24,118 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.20.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: os
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: ruby-kafka
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.5.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.5.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: mysql2
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.4.10
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.4.10
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.8'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.8'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: mechanize
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.7'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.7'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: httparty
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.15.6
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.15.6
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: dotenv
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.11.1
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.11.1
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: listen
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '3.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '3.0'
|
27
139
|
- !ruby/object:Gem::Dependency
|
28
140
|
name: bundler
|
29
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,23 +208,23 @@ files:
|
|
96
208
|
- farmstead.gemspec
|
97
209
|
- lib/farmstead.rb
|
98
210
|
- lib/farmstead/cli.rb
|
211
|
+
- lib/farmstead/cli/test.rb
|
99
212
|
- lib/farmstead/manager.rb
|
100
213
|
- lib/farmstead/pipeline/extract.rb
|
101
214
|
- lib/farmstead/pipeline/load.rb
|
102
215
|
- lib/farmstead/pipeline/transform.rb
|
103
216
|
- lib/farmstead/project.rb
|
104
217
|
- lib/farmstead/scaffold/.dockerignore.erb
|
105
|
-
- lib/farmstead/scaffold/.env.erb
|
106
218
|
- lib/farmstead/scaffold/Dockerfile.erb
|
107
219
|
- lib/farmstead/scaffold/Gemfile.erb
|
108
220
|
- lib/farmstead/scaffold/docker-compose.yml.erb
|
109
221
|
- lib/farmstead/scaffold/exec.sh.erb
|
110
222
|
- lib/farmstead/scaffold/extract/extracter.rb.erb
|
111
|
-
- lib/farmstead/scaffold/load/loader.rb
|
223
|
+
- lib/farmstead/scaffold/load/loader.rb.erb
|
112
224
|
- lib/farmstead/scaffold/project.rb.erb
|
113
225
|
- lib/farmstead/scaffold/project.yml.erb
|
114
226
|
- lib/farmstead/scaffold/supervisord.conf.erb
|
115
|
-
- lib/farmstead/scaffold/transform/transformer.rb
|
227
|
+
- lib/farmstead/scaffold/transform/transformer.rb.erb
|
116
228
|
- lib/farmstead/service.rb
|
117
229
|
- lib/farmstead/version.rb
|
118
230
|
homepage: https://github.com/mastermindg/farmstead
|
@@ -1,9 +0,0 @@
|
|
1
|
-
MYSQL_ROOT_PASSWORD=Rc2$NE99p5%^
|
2
|
-
MYSQL_DATABASE=farmstead
|
3
|
-
MYSQL_USER=farmstead
|
4
|
-
MYSQL_PASSWORD=farmstead
|
5
|
-
MYSQL_HOST=mysql
|
6
|
-
RAILS_ENV=development
|
7
|
-
KAFKA_ADVERTISED_HOST_NAME={%= ip %}
|
8
|
-
KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
|
9
|
-
KAFKA_CREATE_TOPICS=Wood:1:1,Field:1:1,Forest:1:1,Road:1:1
|