chore 0.2.0 → 0.2.1
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.
- data/bin/chore-client +26 -1
- data/bin/chore-status +14 -1
- data/lib/chore/server.rb +2 -0
- metadata +4 -4
data/bin/chore-client
CHANGED
@@ -12,6 +12,13 @@ opts = Trollop::options do
|
|
12
12
|
|
13
13
|
opt :chore, "name of chore", :type => :string
|
14
14
|
opt :action, "action (start, finish, status, fail, etc)", :type => :string
|
15
|
+
|
16
|
+
opt :do_every, "interval that chore is expected to run in seconds", :type => :integer
|
17
|
+
opt :grace_period, "grace_period above and beyond do_every", :type => :integer
|
18
|
+
opt :finish_in, "seconds in which a healthy job should finish", :type => :integer
|
19
|
+
opt :expire_in, "seconds until chore is automatically removed from the queue", :type => :integer
|
20
|
+
|
21
|
+
opt :error, "Error message to use in conjunction with 'fail' action", :type => :string
|
15
22
|
end
|
16
23
|
|
17
24
|
Trollop::die :chore, "chore name required" if !opts[:chore]
|
@@ -22,4 +29,22 @@ port = opts[:port]
|
|
22
29
|
|
23
30
|
Chore.set_server(server, port)
|
24
31
|
|
25
|
-
|
32
|
+
|
33
|
+
chore = opts[:chore]
|
34
|
+
action = opts[:action]
|
35
|
+
chore_opts = {}
|
36
|
+
|
37
|
+
add_if_exists = lambda do |x|
|
38
|
+
chore_opts[x] = opts[x] if opts[x]
|
39
|
+
end
|
40
|
+
|
41
|
+
if action == "start"
|
42
|
+
add_if_exists.call(:do_every)
|
43
|
+
add_if_exists.call(:grace_period)
|
44
|
+
add_if_exists.call(:finish_in)
|
45
|
+
add_if_exists.call(:expire_in)
|
46
|
+
elsif action == "fail"
|
47
|
+
add_if_exists.call(:error)
|
48
|
+
end
|
49
|
+
|
50
|
+
Chore.public_method(action).call(chore, chore_opts)
|
data/bin/chore-status
CHANGED
@@ -9,12 +9,13 @@ opts = Trollop::options do
|
|
9
9
|
|
10
10
|
opt :host, "host name of chore-server", :default => 'localhost'
|
11
11
|
opt :port, "port of chore-server", :default => Chore::Constants::DEFAULT_CLI_PORT
|
12
|
+
opt :refresh, "auto-refresh every 60 seconds"
|
12
13
|
end
|
13
14
|
|
14
15
|
server = opts[:host]
|
15
16
|
port = opts[:port]
|
16
17
|
|
17
|
-
|
18
|
+
def get_and_print server, port
|
18
19
|
sock = TCPSocket.open(server,port)
|
19
20
|
sock.puts ".\r\n"
|
20
21
|
|
@@ -26,3 +27,15 @@ begin
|
|
26
27
|
rescue Errno::ECONNREFUSED, Errno::ETIMEDOUT => ex
|
27
28
|
puts "Couldn't connect to chore-server at #{server}:#{port}"
|
28
29
|
end
|
30
|
+
|
31
|
+
if opts[:refresh]
|
32
|
+
while 1
|
33
|
+
print "\e[2J\e[f"
|
34
|
+
puts "chore-status - last updated #{Time.now}"
|
35
|
+
puts
|
36
|
+
get_and_print(server,port)
|
37
|
+
sleep(60)
|
38
|
+
end
|
39
|
+
else
|
40
|
+
get_and_print(server,port)
|
41
|
+
end
|
data/lib/chore/server.rb
CHANGED
@@ -70,9 +70,11 @@ body {font-family:monospace;background-color:#CCCCCC;}
|
|
70
70
|
.green {color:green;}
|
71
71
|
table, th, td { border: 1px solid black;}
|
72
72
|
</style>
|
73
|
+
<meta http-equiv="refresh" content="60">
|
73
74
|
</head>
|
74
75
|
<body>
|
75
76
|
<h1>Chores</h1>
|
77
|
+
<p>Last updated #{Time.now}</p>
|
76
78
|
<table>
|
77
79
|
<tr><th>Job</th><th>Status</th><th>Time</th><th>Notes</th></tr>
|
78
80
|
html
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: chore
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Pikimal, LLC
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2012-06-
|
13
|
+
date: 2012-06-22 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: eventmachine
|
@@ -56,7 +56,7 @@ dependencies:
|
|
56
56
|
version: "0"
|
57
57
|
type: :development
|
58
58
|
version_requirements: *id004
|
59
|
-
description:
|
59
|
+
description: System health tool for everyone
|
60
60
|
email: grant@pikimal.com
|
61
61
|
executables:
|
62
62
|
- chore-server
|
@@ -101,6 +101,6 @@ rubyforge_project:
|
|
101
101
|
rubygems_version: 1.8.11
|
102
102
|
signing_key:
|
103
103
|
specification_version: 3
|
104
|
-
summary: Monitor chores
|
104
|
+
summary: Monitor recurring chores
|
105
105
|
test_files: []
|
106
106
|
|