homesteading 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 +4 -4
- data/README.md +1 -1
- data/help/apps-reroute.md +1 -2
- data/help/server-stop.md +1 -1
- data/help/server.md +22 -11
- data/lib/homesteading/commands/apps.rb +48 -0
- data/lib/homesteading/commands/server.rb +103 -1
- data/lib/homesteading/commands/version.rb +1 -1
- data/lib/homesteading/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5db8d5777b4eb5e818b9ad741685e209816188a4
|
4
|
+
data.tar.gz: 9aa46f5c71d19ee16c7b579f97d24f26acd9e122
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c2149e2198269d10702779fbbc6d749e6cb97aa005ee75164fb676d98a3598407d3ef884b4f48eba712bd152bd9564623d1049e08b363ae3810ab83f4e4437c
|
7
|
+
data.tar.gz: 3b444776f3aa5ee0eb4336b22c9bd0a7bfd7fe4f0771e523692afdf230cd92d3c9a7a630c91eac3e5f22585ad8037cb3b2661c445cab7894c4e4d52df92bcd16
|
data/README.md
CHANGED
data/help/apps-reroute.md
CHANGED
data/help/server-stop.md
CHANGED
data/help/server.md
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# TODO
|
2
|
-
|
3
1
|
Usage: homesteading server
|
4
2
|
|
5
3
|
start a server for constellation of homesteading apps
|
@@ -9,19 +7,32 @@ Usage: homesteading server
|
|
9
7
|
Example:
|
10
8
|
|
11
9
|
$ homesteading server
|
12
|
-
Homesteading
|
10
|
+
* Homesteading: 0.0.9, codename: Rooftop
|
11
|
+
* Puma: 2.10.2 (ruby 2.1.5-p273), codename: Robots on Comets
|
12
|
+
* Ruby: 2.1.5p273 (2014-11-13 revision 48405) [x86_64-darwin14.0]
|
13
|
+
* Environment: development
|
14
|
+
* Running on: http://0.0.0.0:3000
|
15
|
+
|
16
|
+
* Homesteading servers starting...
|
13
17
|
|
14
|
-
*
|
15
|
-
*
|
16
|
-
*
|
17
|
-
*
|
18
|
-
*
|
18
|
+
* Starting on port 3002 : article
|
19
|
+
* Starting on port 3003 : bookmark
|
20
|
+
* Starting on port 3004 : event
|
21
|
+
* Starting on port 3005 : feed
|
22
|
+
* Starting on port 3006 : note
|
23
|
+
* Starting on port 3007 : photo
|
24
|
+
* Starting on port 3009 : sound
|
25
|
+
* Starting on port 3010 : video
|
26
|
+
* Starting on port 3011 : walk
|
27
|
+
* Starting on port 3012 : weight
|
19
28
|
|
20
|
-
|
29
|
+
* To stop Homesteading servers:
|
30
|
+
ctrl-c
|
31
|
+
homesteading server:stop
|
21
32
|
|
22
33
|
|
23
34
|
Additional commands, type "homesteading help COMMAND" for more details:
|
24
35
|
|
25
36
|
* server:list # list the currently running homesteading apps
|
26
|
-
* server:stop [--app APP] # stop
|
27
|
-
* server:urls [--app APP] # list the urls of running apps
|
37
|
+
* server:stop [--app APP] # stop running homesteading apps
|
38
|
+
* server:urls [--app APP] # list the urls of running homesteading apps
|
@@ -244,6 +244,54 @@ class Homesteading
|
|
244
244
|
end
|
245
245
|
|
246
246
|
def reroute
|
247
|
+
puts
|
248
|
+
options = parse_options
|
249
|
+
|
250
|
+
if options[:app].nil?
|
251
|
+
puts "* '--app APP' is required for this command"
|
252
|
+
puts
|
253
|
+
exit
|
254
|
+
end
|
255
|
+
|
256
|
+
new_route = ARGV.shift
|
257
|
+
if new_route.nil?
|
258
|
+
puts "* New app route is required for this command"
|
259
|
+
puts "* Example:"
|
260
|
+
puts " homesteading apps:reroute statuses --app note"
|
261
|
+
puts
|
262
|
+
exit
|
263
|
+
end
|
264
|
+
|
265
|
+
app = options[:app].downcase
|
266
|
+
constellation_path = Dir.pwd
|
267
|
+
app_dir = "#{constellation_path}/homesteading-#{app}/"
|
268
|
+
app_file_path = app_dir + "app.json"
|
269
|
+
|
270
|
+
if File.exist?(app_dir)
|
271
|
+
if File.exist?(app_file_path)
|
272
|
+
app_file = JSON.parse(File.read(app_file_path))
|
273
|
+
app_file["routes"]["path"] = new_route
|
274
|
+
|
275
|
+
puts "* Rerouting note to /statuses..."
|
276
|
+
new_app_file = JSON.pretty_generate(app_file)
|
277
|
+
File.write(app_file_path, new_app_file)
|
278
|
+
puts "* ...done"
|
279
|
+
else
|
280
|
+
puts "* No app.json found for #{app}"
|
281
|
+
puts
|
282
|
+
exit
|
283
|
+
end
|
284
|
+
else
|
285
|
+
puts "* #{app} does not exist"
|
286
|
+
puts "* Did you mean one of these?"
|
287
|
+
Dir.glob("#{Dir.pwd}/homesteading-*/").each do |ff|
|
288
|
+
puts " - #{ff.split("/").last.sub(/homesteading-/, "")}"
|
289
|
+
end
|
290
|
+
puts
|
291
|
+
exit
|
292
|
+
end
|
293
|
+
|
294
|
+
puts
|
247
295
|
end
|
248
296
|
|
249
297
|
private
|
@@ -3,6 +3,93 @@ class Homesteading
|
|
3
3
|
class << self
|
4
4
|
|
5
5
|
def default
|
6
|
+
puts
|
7
|
+
options = parse_options
|
8
|
+
|
9
|
+
router_port = options[:port] || 3000
|
10
|
+
|
11
|
+
# Kill all Homesteading apps when `hs server` is stopped
|
12
|
+
servers = []
|
13
|
+
Signal.trap("INT") do
|
14
|
+
servers.each do |io|
|
15
|
+
puts "Stopping HS:Publisher app at PID: #{io.pid}"
|
16
|
+
Process.kill "SIGINT", io.pid
|
17
|
+
end
|
18
|
+
|
19
|
+
system("homesteading server:stop")
|
20
|
+
exit
|
21
|
+
end
|
22
|
+
|
23
|
+
# TODO
|
24
|
+
homesteading_info = "0.0.9, codename: Rooftop"
|
25
|
+
ruby_info = RUBY_VERSION
|
26
|
+
puma_info = "2.10.2 (ruby 2.1.5-p273), codename: Robots on Comets"
|
27
|
+
env_info = "development"
|
28
|
+
|
29
|
+
puts "* Homesteading: #{homesteading_info}"
|
30
|
+
puts "* Puma: #{puma_info}"
|
31
|
+
puts "* Ruby: #{RUBY_VERSION}"
|
32
|
+
puts "* Environment: #{env_info}"
|
33
|
+
puts "* Running on: http://0.0.0.0:#{router_port}"
|
34
|
+
puts
|
35
|
+
|
36
|
+
puts "* Homesteading servers starting..."
|
37
|
+
puts
|
38
|
+
|
39
|
+
routes = []
|
40
|
+
|
41
|
+
app_port = 3000
|
42
|
+
Dir.glob("#{Dir.pwd}/homesteading-*/").each_with_index do |directory, index|
|
43
|
+
app_file_path = directory + "app.json"
|
44
|
+
|
45
|
+
if File.exist?(app_file_path)
|
46
|
+
app_file = JSON.parse(File.read(app_file_path))
|
47
|
+
app_route = app_file["routes"]
|
48
|
+
|
49
|
+
if app_route
|
50
|
+
app_name = directory.split("/").last
|
51
|
+
|
52
|
+
app_path = app_route["path"]
|
53
|
+
if app_name =~ /feed/
|
54
|
+
app_path = "feed"
|
55
|
+
end
|
56
|
+
|
57
|
+
unless app_name == "homesteading-router-rack"
|
58
|
+
app_port += 1
|
59
|
+
routes << "#{app_path}:#{app_port}"
|
60
|
+
end
|
61
|
+
|
62
|
+
if app_name =~ /homesteading-assets|homesteading-router-rack/
|
63
|
+
# TODO TEMP FIXME serve assets from hub
|
64
|
+
# skipping assets and router
|
65
|
+
elsif app_name == "homesteading-feed"
|
66
|
+
# TODO TEMP FIXME no bin/rails
|
67
|
+
puts "* Starting on port #{app_port} : #{app_name.sub(/homesteading-/, "")}"
|
68
|
+
servers << IO.popen("cd #{directory} && rails server -p #{app_port}", "w")
|
69
|
+
else
|
70
|
+
puts "* Starting on port #{app_port} : #{app_name.sub(/homesteading-/, "")}"
|
71
|
+
servers << IO.popen("cd #{directory} && bin/rails server -d --port #{app_port}", "w")
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
# TODO write routes to an env var for hs:router's routes table
|
79
|
+
ENV["HOMESTEADING_ROUTES"] = routes.join(",")
|
80
|
+
|
81
|
+
# start up router after ENV var is set
|
82
|
+
# elsif app_name == "homesteading-router-rack"
|
83
|
+
puts
|
84
|
+
puts "* Starting on port #{router_port} : router"
|
85
|
+
servers << IO.popen("cd #{Dir.pwd}/homesteading-router-rack/ && rackup -p #{router_port}", "w")
|
86
|
+
|
87
|
+
|
88
|
+
puts
|
89
|
+
puts "* To stop Homesteading servers:"
|
90
|
+
puts " ctrl-c"
|
91
|
+
puts " homesteading server:stop"
|
92
|
+
puts
|
6
93
|
end
|
7
94
|
|
8
95
|
def list
|
@@ -10,13 +97,28 @@ class Homesteading
|
|
10
97
|
|
11
98
|
def stop
|
12
99
|
# TEMP HACK TODO FIXME
|
13
|
-
# This is overly aggressive, but
|
100
|
+
# This is overly aggressive, but Signal.trap isn't working
|
14
101
|
system "killall ruby"
|
15
102
|
end
|
16
103
|
|
17
104
|
def urls
|
18
105
|
end
|
19
106
|
|
107
|
+
private
|
108
|
+
def parse_options
|
109
|
+
# Parse command line options
|
110
|
+
options = {}
|
111
|
+
|
112
|
+
optparse = OptionParser.new do |opts|
|
113
|
+
opts.on("-p", "--port PORT", "Run homesteading site on a specific port (default: 3000)") do |port|
|
114
|
+
options[:port] = port
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
optparse.parse!
|
119
|
+
options
|
120
|
+
end
|
121
|
+
|
20
122
|
end
|
21
123
|
end
|
22
124
|
end
|
@@ -5,7 +5,7 @@ class Homesteading
|
|
5
5
|
def default
|
6
6
|
# TODO load in *actual* VERSION and CODENAME from homesteading/version
|
7
7
|
# puts "Homesteading #{Homesteading::VERSION}, codename: #{Homesteading::CODENAME}"
|
8
|
-
puts "Homesteading 0.0.
|
8
|
+
puts "Homesteading 0.0.9, codename: Rooftop"
|
9
9
|
end
|
10
10
|
|
11
11
|
end
|
data/lib/homesteading/version.rb
CHANGED