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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31616a1dd11521bf8da28df2bffeaf2af007c265
4
- data.tar.gz: 8183650730eb36ab701158dce87d7eb236d8cb03
3
+ metadata.gz: ef85cd392e71bdf7c32476b6a634a0ca4e44dda0
4
+ data.tar.gz: 9ec2c783a0e9017a5882111eba637ee0aeadf211
5
5
  SHA512:
6
- metadata.gz: b07495b45471e17fb648965d2911a0e416940700d7ae4aa9b860ee8b9f0fcbac2b60729d466d832a1f23a9afed7ba83af7509792d590e8cd8e9cd1450c09414f
7
- data.tar.gz: 4ec5030c540fd99d7ffb2633cdd7d06269f5aec5dc259bea923f1fbc6589c5f62d7aa416e70c8a1a6567ae35f2c93a0c3f34c8057b83114a5f86943c6ba86380
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.12)
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
- oauth2 (1.4.0)
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
- httparty (~> 0.15.6)
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
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'farmstead'
3
+ require "farmstead"
4
4
 
5
- Farmstead::CLI.start
5
+ Farmstead::HammerTime.start(ARGV)
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.add_dependency "thor", "~> 0.20.0"
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"
@@ -0,0 +1,15 @@
1
+ # Test subcommands
2
+
3
+ module Farmstead
4
+ class CLITest < Thor
5
+ desc "foo", "Test foo"
6
+ def foo
7
+ true
8
+ end
9
+
10
+ desc "bar", "Test bar"
11
+ def bar
12
+ true
13
+ end
14
+ end
15
+ end
data/lib/farmstead/cli.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require "thor"
2
- # require 'farmstead/cli/net'
2
+ require "farmstead/cli/test"
3
3
 
4
4
  module Farmstead
5
- class CLI < Thor
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 "tinman command", "Send a command to tinman"
27
- def tinman(command)
28
- instance = Farmstead::Tinman.new
29
- instance.send(command)
26
+ desc "deploy", "Deploys a project"
27
+ def deploy
28
+ Farmstead::Project.deploy
30
29
  end
31
30
 
32
- desc "scarecrow command", "Send a command to scarecrow"
33
- def scarecrow(command)
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
@@ -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 start_deploy
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 = get_ip_address_from_local
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 get_ip_address_from_local
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]
@@ -4,3 +4,4 @@ README.md
4
4
  Dockerfile
5
5
  docker-compose.yml
6
6
  kafka
7
+ project.yml
@@ -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 /myapp
18
- WORKDIR /myapp
19
- ADD Gemfile* /myapp/
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 . /myapp
21
+ ADD . /service
22
22
 
23
23
  COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
24
24
 
@@ -5,6 +5,7 @@ source "https://rubygems.org"
5
5
  git_source(:github) { |repo| "https://github.com/#{repo}.git" }
6
6
 
7
7
  gem "coffee-rails", "~> 4.2"
8
+ gem "farmstead"
8
9
  gem "httparty", "~> 0.15.6"
9
10
  gem "jbuilder", "~> 2.5"
10
11
  gem "jquery-rails", "~> 4.3.1"
@@ -16,7 +16,7 @@ services:
16
16
  kafka:
17
17
  depends_on:
18
18
  - 'zookeeper'
19
- image: wurstmeister/kafka:0.10.2.1
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
- dorothy:
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: glenda
32
+ SERVICE: manager
33
+ ports:
34
+ - '3000:3000'
44
35
  env_file:
45
36
  - '.env'
46
37
 
47
- tinman:
38
+ extract:
48
39
  depends_on:
49
- - 'dorothy'
40
+ - 'manage'
50
41
  build: .
51
42
  environment:
52
- SERVICE: tinman
43
+ SERVICE: extracter
53
44
  env_file:
54
45
  - '.env'
55
46
 
56
- scarecrow:
47
+ transform:
57
48
  depends_on:
58
- - 'dorothy'
49
+ - 'manage'
59
50
  build: .
60
51
  environment:
61
- SERVICE: scarecrow
52
+ SERVICE: transformer
62
53
  env_file:
63
54
  - '.env'
64
55
 
65
- cowardlylion:
56
+ load:
66
57
  depends_on:
67
- - 'dorothy'
58
+ - 'manage'
68
59
  build: .
69
60
  environment:
70
- SERVICE: cowardlylion
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 > /dev/null 2>&1
7
- docker-compose rm -f > /dev/null 2>&1
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 > /dev/null 2>&1
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
@@ -1,4 +1,4 @@
1
- module MyProject
1
+ module <%= @name.capitalize %>
2
2
  class Extracter < Farmstead::Extract
3
3
  def hello
4
4
  p "hello"
@@ -1,4 +1,4 @@
1
- module MyProject
1
+ module <%= @name.capitalize %>
2
2
  class Loader < Farmstead::Load
3
3
  def hello
4
4
  p "hello"
@@ -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 MyProject
19
+ module <%= @name.capitalize %>
20
20
  include Farmstead
21
21
  end
22
22
 
23
- klass = Object.const_get "MyProject::#{dynamic_class}"
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
- - name: My Project
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
- - advertise_from_local_ip: false
11
- - advertised_ip: 192.168.1.2
12
- - zookeeper_address: "zookeeper:2181"
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 /myapp/app/lib/farmstead.rb %(ENV_SERVICE)s producer
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 /myapp/app/lib/farmstead.rb %(ENV_SERVICE)s consumer
9
+ command=/usr/local/bin/ruby /service/project.rb %(ENV_SERVICE)s consumer
10
10
  redirect_stderr=true
@@ -1,4 +1,4 @@
1
- module MyProject
1
+ module <%= @name.capitalize %>
2
2
  class Transformer < Farmstead::Transform
3
3
  def hello
4
4
  p "hello"
@@ -1,3 +1,3 @@
1
1
  module Farmstead
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.14"
3
3
  end
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.12
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-04 00:00:00.000000000 Z
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