farmstead 0.0.12 → 0.0.14

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