makesure 0.0.5 → 0.0.6
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/README.rdoc +2 -2
- data/bin/makesure +7 -2
- data/lib/makesure/cron.rb +21 -5
- data/lib/makesure/version.rb +1 -1
- data/makesure.gemspec +3 -4
- metadata +5 -29
data/README.rdoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
=
|
1
|
+
= Makesure
|
2
2
|
|
3
|
-
|
3
|
+
Makesure is a set of tools to define, verify and monitor systems in a unix environment. It allows you to schedule commands that constitue a system via cron (and monitors the execution of those commands), it gives you a way to verify the state of a system (and alerts you when there are problems), and it provides a simple mechanism for collecting statistics about that system.
|
4
4
|
|
5
5
|
== Contributing to makesure
|
6
6
|
|
data/bin/makesure
CHANGED
@@ -6,6 +6,7 @@ require 'makesure'
|
|
6
6
|
require 'optparse'
|
7
7
|
|
8
8
|
cron_path = '/etc/cron.d/makesure.cron'
|
9
|
+
rvm = false
|
9
10
|
|
10
11
|
parser = OptionParser.new do |opts|
|
11
12
|
opts.banner = "Usage: makesure [options] COMMAND"
|
@@ -17,6 +18,10 @@ parser = OptionParser.new do |opts|
|
|
17
18
|
cron_path = path
|
18
19
|
end
|
19
20
|
|
21
|
+
opts.on("-r", "--[no-]rvm", "Whether or not Makesure should wrap the commands in its cron file for use with RVM") do |r|
|
22
|
+
rvm = r
|
23
|
+
end
|
24
|
+
|
20
25
|
opts.on("-h", "--help", "Show this message") do
|
21
26
|
puts opts
|
22
27
|
exit
|
@@ -28,7 +33,7 @@ parser = OptionParser.new do |opts|
|
|
28
33
|
opts.separator " update Updates cron with commands scheduled by your system definitions"
|
29
34
|
end
|
30
35
|
|
31
|
-
parser.parse!
|
36
|
+
parser.parse!(ARGV)
|
32
37
|
|
33
38
|
case ARGV[0]
|
34
39
|
when 'init'
|
@@ -71,7 +76,7 @@ FILE
|
|
71
76
|
end
|
72
77
|
when 'update'
|
73
78
|
Makesure.load_system_defs
|
74
|
-
Makesure::Cron.new(:cron_path => cron_path)
|
79
|
+
Makesure::Cron.new(:cron_path => cron_path, :rvm => rvm)
|
75
80
|
else
|
76
81
|
puts parser.help
|
77
82
|
end
|
data/lib/makesure/cron.rb
CHANGED
@@ -5,13 +5,14 @@ module Makesure
|
|
5
5
|
# specify a file (or directory containing files) to load system specifications from
|
6
6
|
def initialize(opts = {})
|
7
7
|
opts = {
|
8
|
-
:cron_path => "/etc/cron.d/makesure.cron"
|
8
|
+
:cron_path => "/etc/cron.d/makesure.cron",
|
9
|
+
:rvm => false
|
9
10
|
}.merge(opts)
|
10
11
|
|
11
12
|
Makesure.log "updating '#{opts[:cron_path]}'"
|
12
13
|
|
13
14
|
cron_file = File.expand_path(opts[:cron_path])
|
14
|
-
crontab = build_crontab_output
|
15
|
+
crontab = build_crontab_output(opts)
|
15
16
|
Makesure.debug "#{cron_file}:\n#{crontab}"
|
16
17
|
|
17
18
|
File.open(cron_file, "w") do |f|
|
@@ -19,7 +20,7 @@ module Makesure
|
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
22
|
-
def build_crontab_output
|
23
|
+
def build_crontab_output(opts)
|
23
24
|
chdir = Makesure.chdir || File.dirname(Makesure.makesurefile)
|
24
25
|
crontab = ""
|
25
26
|
crontab << "# Autogenerated by makesure: you probably don't want to edit this file\n\n"
|
@@ -35,14 +36,29 @@ module Makesure
|
|
35
36
|
crontab << "#{c.cron}\t"
|
36
37
|
crontab << "#{uid} " if uid
|
37
38
|
crontab << "cd #{chdir} && "
|
38
|
-
|
39
|
+
|
40
|
+
cmd = "makesure-runner run #{c.command.inspect}"
|
41
|
+
crontab << if (opts[:rvm])
|
42
|
+
"/bin/bash -l -c '#{cmd}'"
|
43
|
+
else
|
44
|
+
cmd
|
45
|
+
end
|
46
|
+
crontab << "\n"
|
39
47
|
end
|
48
|
+
|
40
49
|
crontab << "# Verification\n"
|
41
50
|
s.verifies.each do |v|
|
42
51
|
crontab << "#{v.cron}\t"
|
43
52
|
crontab << "#{uid} " if uid
|
44
53
|
crontab << "cd #{chdir} && "
|
45
|
-
|
54
|
+
|
55
|
+
cmd = "makesure-runner verify #{s.name} #{v.name}"
|
56
|
+
crontab << if (opts[:rvm])
|
57
|
+
"/bin/bash -l -c '#{cmd}'"
|
58
|
+
else
|
59
|
+
cmd
|
60
|
+
end
|
61
|
+
crontab << "\n"
|
46
62
|
end
|
47
63
|
# TODO summarizes
|
48
64
|
end
|
data/lib/makesure/version.rb
CHANGED
data/makesure.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{makesure}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.6"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Eric Waller"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-05-05}
|
13
13
|
s.description = %q{Makesure is a set of tools to define, verify and monitor systems in a unix environment. It allows you to schedule commands that constitue a system via cron (and monitors the execution of those commands), it gives you a way to verify the state of a system (and alerts you when there are problems), and it provides a simple mechanism for collecting statistics about that system.}
|
14
14
|
s.email = %q{eric@seatgeek.com}
|
15
15
|
s.executables = ["makesure", "makesure-runner"]
|
@@ -43,7 +43,7 @@ Gem::Specification.new do |s|
|
|
43
43
|
s.homepage = %q{http://github.com/seatgeek/makesure}
|
44
44
|
s.licenses = ["MIT"]
|
45
45
|
s.require_paths = ["lib"]
|
46
|
-
s.rubygems_version = %q{1.
|
46
|
+
s.rubygems_version = %q{1.5.0}
|
47
47
|
s.summary = %q{Continuous (Production) Verification: Define and Monitor Systems in Ruby}
|
48
48
|
s.test_files = [
|
49
49
|
"test/helper.rb",
|
@@ -51,7 +51,6 @@ Gem::Specification.new do |s|
|
|
51
51
|
]
|
52
52
|
|
53
53
|
if s.respond_to? :specification_version then
|
54
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
55
54
|
s.specification_version = 3
|
56
55
|
|
57
56
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: makesure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
version: 0.0.5
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.6
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Eric Waller
|
@@ -14,7 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date: 2011-
|
13
|
+
date: 2011-05-05 00:00:00 -04:00
|
18
14
|
default_executable:
|
19
15
|
dependencies:
|
20
16
|
- !ruby/object:Gem::Dependency
|
@@ -24,9 +20,6 @@ dependencies:
|
|
24
20
|
requirements:
|
25
21
|
- - ">="
|
26
22
|
- !ruby/object:Gem::Version
|
27
|
-
segments:
|
28
|
-
- 1
|
29
|
-
- 0
|
30
23
|
version: "1.0"
|
31
24
|
type: :runtime
|
32
25
|
prerelease: false
|
@@ -38,8 +31,6 @@ dependencies:
|
|
38
31
|
requirements:
|
39
32
|
- - ">="
|
40
33
|
- !ruby/object:Gem::Version
|
41
|
-
segments:
|
42
|
-
- 0
|
43
34
|
version: "0"
|
44
35
|
type: :development
|
45
36
|
prerelease: false
|
@@ -51,10 +42,6 @@ dependencies:
|
|
51
42
|
requirements:
|
52
43
|
- - ~>
|
53
44
|
- !ruby/object:Gem::Version
|
54
|
-
segments:
|
55
|
-
- 1
|
56
|
-
- 0
|
57
|
-
- 0
|
58
45
|
version: 1.0.0
|
59
46
|
type: :development
|
60
47
|
prerelease: false
|
@@ -66,10 +53,6 @@ dependencies:
|
|
66
53
|
requirements:
|
67
54
|
- - ~>
|
68
55
|
- !ruby/object:Gem::Version
|
69
|
-
segments:
|
70
|
-
- 1
|
71
|
-
- 5
|
72
|
-
- 2
|
73
56
|
version: 1.5.2
|
74
57
|
type: :development
|
75
58
|
prerelease: false
|
@@ -81,8 +64,6 @@ dependencies:
|
|
81
64
|
requirements:
|
82
65
|
- - ">="
|
83
66
|
- !ruby/object:Gem::Version
|
84
|
-
segments:
|
85
|
-
- 0
|
86
67
|
version: "0"
|
87
68
|
type: :development
|
88
69
|
prerelease: false
|
@@ -94,9 +75,6 @@ dependencies:
|
|
94
75
|
requirements:
|
95
76
|
- - ">="
|
96
77
|
- !ruby/object:Gem::Version
|
97
|
-
segments:
|
98
|
-
- 1
|
99
|
-
- 0
|
100
78
|
version: "1.0"
|
101
79
|
type: :runtime
|
102
80
|
prerelease: false
|
@@ -147,7 +125,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
147
125
|
requirements:
|
148
126
|
- - ">="
|
149
127
|
- !ruby/object:Gem::Version
|
150
|
-
hash:
|
128
|
+
hash: -1531056845273534742
|
151
129
|
segments:
|
152
130
|
- 0
|
153
131
|
version: "0"
|
@@ -156,13 +134,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
134
|
requirements:
|
157
135
|
- - ">="
|
158
136
|
- !ruby/object:Gem::Version
|
159
|
-
segments:
|
160
|
-
- 0
|
161
137
|
version: "0"
|
162
138
|
requirements: []
|
163
139
|
|
164
140
|
rubyforge_project:
|
165
|
-
rubygems_version: 1.
|
141
|
+
rubygems_version: 1.5.0
|
166
142
|
signing_key:
|
167
143
|
specification_version: 3
|
168
144
|
summary: "Continuous (Production) Verification: Define and Monitor Systems in Ruby"
|