runsible 0.1.4.3 → 0.1.4.5
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 +4 -4
- data/VERSION +1 -1
- data/lib/runsible.rb +15 -0
- data/runsible.gemspec +0 -2
- 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: 3c6e97e7684c0473f0b015ef7458fd181e3758aa
|
|
4
|
+
data.tar.gz: 0683c11734db25fb288d7c27ccc0ec15dfb607c1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ec0617e974d77b203aeb318c14c9ec132e1f3907cde4ef02b4e68185559d018931993eb33b7fb82bf630b0abc509e750ea749a6909d789df136eaa15180e8302
|
|
7
|
+
data.tar.gz: efea1d51af58e32a02ff17a49b85ecc8b29da012c47357245d681e78b053ea9c31cfc990355d575a4f3bffecf310d8044baaa772ab236a44316f1fd7c14977f9
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.1.4.
|
|
1
|
+
0.1.4.5
|
data/lib/runsible.rb
CHANGED
|
@@ -26,10 +26,12 @@ module Runsible
|
|
|
26
26
|
# Utility stuff
|
|
27
27
|
#
|
|
28
28
|
|
|
29
|
+
# provide a better string representation for all Exceptions
|
|
29
30
|
def self.excp(excp)
|
|
30
31
|
"#{excp.class}: #{excp.message}"
|
|
31
32
|
end
|
|
32
33
|
|
|
34
|
+
# return SETTINGS with string keys
|
|
33
35
|
def self.default_settings
|
|
34
36
|
hsh = {}
|
|
35
37
|
SETTINGS.each { |sym, v|
|
|
@@ -38,10 +40,12 @@ module Runsible
|
|
|
38
40
|
hsh
|
|
39
41
|
end
|
|
40
42
|
|
|
43
|
+
# read VERSION from filesystem
|
|
41
44
|
def self.version
|
|
42
45
|
File.read(File.join(__dir__, '..', 'VERSION'))
|
|
43
46
|
end
|
|
44
47
|
|
|
48
|
+
# send alert depending on settings['alerts']['backend']
|
|
45
49
|
def self.alert(topic, message, settings)
|
|
46
50
|
backend = settings['alerts'] && settings['alerts']['backend']
|
|
47
51
|
case backend
|
|
@@ -60,11 +64,13 @@ module Runsible
|
|
|
60
64
|
end
|
|
61
65
|
end
|
|
62
66
|
|
|
67
|
+
# send warnings to both STDOUT and STDERR
|
|
63
68
|
def self.warn(msg)
|
|
64
69
|
$stdout.puts msg
|
|
65
70
|
$stderr.puts msg
|
|
66
71
|
end
|
|
67
72
|
|
|
73
|
+
# warn, alert, exit 1
|
|
68
74
|
def self.die!(msg, settings)
|
|
69
75
|
self.warn(msg)
|
|
70
76
|
self.alert("runsible:fatal:#{Process.pid}", msg, settings)
|
|
@@ -85,6 +91,7 @@ module Runsible
|
|
|
85
91
|
self.ssh_runlist(settings, yaml['runlist'] || Array.new, ssh_options, yaml)
|
|
86
92
|
end
|
|
87
93
|
|
|
94
|
+
# parse CLI arguments
|
|
88
95
|
def self.slop_parse
|
|
89
96
|
d = SETTINGS # display defaults
|
|
90
97
|
Slop.parse do |o|
|
|
@@ -109,6 +116,7 @@ module Runsible
|
|
|
109
116
|
end
|
|
110
117
|
end
|
|
111
118
|
|
|
119
|
+
# load yaml from CLI arguments
|
|
112
120
|
def self.extract_yaml(opts)
|
|
113
121
|
yaml_filename = opts.arguments.shift
|
|
114
122
|
self.usage(opts, "yaml_file is required") if yaml_filename.nil?
|
|
@@ -121,6 +129,7 @@ module Runsible
|
|
|
121
129
|
yaml
|
|
122
130
|
end
|
|
123
131
|
|
|
132
|
+
# provide a friendly message for the user
|
|
124
133
|
def self.usage(opts, msg=nil)
|
|
125
134
|
puts opts
|
|
126
135
|
puts
|
|
@@ -234,6 +243,8 @@ module Runsible
|
|
|
234
243
|
# Necessities
|
|
235
244
|
#
|
|
236
245
|
|
|
246
|
+
# opts has symbol keys, overrides settings (string keys)
|
|
247
|
+
# return a hash with string keys
|
|
237
248
|
def self.merge(opts, settings)
|
|
238
249
|
Runsible::SETTINGS.keys.each { |sym|
|
|
239
250
|
settings[sym.to_s] = opts[sym] if opts[sym]
|
|
@@ -242,18 +253,22 @@ module Runsible
|
|
|
242
253
|
settings
|
|
243
254
|
end
|
|
244
255
|
|
|
256
|
+
# delimits the beginning of command output
|
|
245
257
|
def self.begin_banner(msg)
|
|
246
258
|
"RUNSIBLE >>> [#{self.timestamp}] >>> #{msg} >>>>>"
|
|
247
259
|
end
|
|
248
260
|
|
|
261
|
+
# delimits the end of command output
|
|
249
262
|
def self.end_banner(msg)
|
|
250
263
|
"<<<<< #{msg} <<< [#{self.timestamp}] <<< RUNSIBLE"
|
|
251
264
|
end
|
|
252
265
|
|
|
266
|
+
# self-explanatory
|
|
253
267
|
def self.timestamp(t = Time.now)
|
|
254
268
|
t.strftime("%b%d %H:%M:%S")
|
|
255
269
|
end
|
|
256
270
|
|
|
271
|
+
# display begin/end banners, yielding to the block in between
|
|
257
272
|
def self.banner_wrap(msg)
|
|
258
273
|
self.warn self.begin_banner(msg)
|
|
259
274
|
val = block_given? ? yield : true
|
data/runsible.gemspec
CHANGED