notifyme 0.2 → 0.3
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 +3 -3
- data/lib/notifyme/start.rb +25 -6
- data/lib/notifyme.rb +1 -0
- data/notifyme_config.rb +5 -3
- metadata +7 -7
data/README.rdoc
CHANGED
@@ -10,11 +10,11 @@ gem install notifyme
|
|
10
10
|
|
11
11
|
# run in the background
|
12
12
|
|
13
|
-
$ notifyme_daemon start --(double dash here) /path/to/notifyme_config.rb
|
13
|
+
$ notifyme_daemon start --(double dash here) /absolute/path/to/notifyme_config.rb
|
14
14
|
|
15
15
|
# debug (use Ctrl + C to stop it)
|
16
16
|
|
17
|
-
$ notifyme_daemon run --(double dash here) /path/to/notifyme_config.rb
|
17
|
+
$ notifyme_daemon run --(double dash here) /absolute/path/to/notifyme_config.rb
|
18
18
|
|
19
19
|
# stop
|
20
20
|
|
@@ -30,7 +30,7 @@ The output from every task's command will be processed (send to endpoint) only i
|
|
30
30
|
|
31
31
|
== Version
|
32
32
|
|
33
|
-
v 0.
|
33
|
+
v 0.3
|
34
34
|
|
35
35
|
== Author
|
36
36
|
|
data/lib/notifyme/start.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
|
1
|
+
require 'notifyme/task'
|
2
|
+
require 'notifyme/log'
|
2
3
|
|
3
|
-
|
4
|
+
module NotifyMe
|
4
5
|
|
5
|
-
|
6
|
-
autoload :Log, 'notifyme/log'
|
6
|
+
VERSION = '0.3'
|
7
7
|
|
8
8
|
class Start
|
9
9
|
class << self
|
@@ -11,6 +11,7 @@ module NotifyMe
|
|
11
11
|
# log
|
12
12
|
@@log_args = nil
|
13
13
|
@@log_format = nil
|
14
|
+
@@log_directory = nil
|
14
15
|
|
15
16
|
# tasks list
|
16
17
|
@@tasks = []
|
@@ -28,7 +29,7 @@ module NotifyMe
|
|
28
29
|
|
29
30
|
def task(name)
|
30
31
|
raise 'Invalid task calls' unless block_given?
|
31
|
-
task = Task.new
|
32
|
+
task = NotifyMe::Task.new
|
32
33
|
task.name = name
|
33
34
|
task.logger ||= NotifyMe::Log::Base.new(@@log_args).logger
|
34
35
|
task.log_format ||= @@log_format
|
@@ -43,6 +44,11 @@ module NotifyMe
|
|
43
44
|
def log_format(format)
|
44
45
|
@@log_format = format
|
45
46
|
end
|
47
|
+
|
48
|
+
def log_directory(directory)
|
49
|
+
FileUtils.mkdir_p directory unless File.directory? directory
|
50
|
+
@@log_directory = directory
|
51
|
+
end
|
46
52
|
end
|
47
53
|
|
48
54
|
def run
|
@@ -69,6 +75,7 @@ module NotifyMe
|
|
69
75
|
task.result = task.command.call
|
70
76
|
task.end_run_time = Time.now.to_i
|
71
77
|
rescue Exception => e
|
78
|
+
log_error task.name, task.command, e.to_s
|
72
79
|
task.result = e.to_s
|
73
80
|
end
|
74
81
|
|
@@ -76,7 +83,11 @@ module NotifyMe
|
|
76
83
|
return if task.result.to_s.empty?
|
77
84
|
|
78
85
|
# restart the command if need
|
79
|
-
|
86
|
+
begin
|
87
|
+
task.restart_command.call if task.restart_command
|
88
|
+
rescue Exception => e
|
89
|
+
log_error task.name, task.restart_command, e.to_s
|
90
|
+
end
|
80
91
|
|
81
92
|
@mutex.synchronize do
|
82
93
|
begin
|
@@ -87,6 +98,14 @@ module NotifyMe
|
|
87
98
|
end
|
88
99
|
end
|
89
100
|
|
101
|
+
def log_error(task_name, command, msg)
|
102
|
+
return if @@log_directory.nil?
|
103
|
+
log_file = File.join(@@log_directory, '/', "#{task_name}.log")
|
104
|
+
File.open(log_file, 'a') do |f|
|
105
|
+
f.write "(#{Time.new.to_s}) #{command} : #{msg}\n"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
90
109
|
def initialize(config_file)
|
91
110
|
require config_file
|
92
111
|
end
|
data/lib/notifyme.rb
CHANGED
data/notifyme_config.rb
CHANGED
@@ -29,16 +29,18 @@ NotifyMe::Start.config do
|
|
29
29
|
# :csv, :text, :xml, :json
|
30
30
|
log_format :json
|
31
31
|
|
32
|
+
# log_directory '/tmp/notifyme'
|
33
|
+
|
32
34
|
# add some tasks
|
33
35
|
|
34
36
|
task :checking_disk do |t|
|
35
|
-
t.sleep_time =
|
37
|
+
t.sleep_time = 3
|
36
38
|
t.command = Proc.new { %x{df -h} }
|
37
39
|
end
|
38
40
|
|
39
|
-
task :
|
41
|
+
task :checking_date do |t|
|
40
42
|
t.sleep_time = 2
|
41
43
|
t.command = MyTask
|
42
|
-
t.restart_command =
|
44
|
+
t.restart_command = Proc.new { %x{dates} }
|
43
45
|
end
|
44
46
|
end
|
metadata
CHANGED
@@ -4,8 +4,8 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
version: "0.
|
7
|
+
- 3
|
8
|
+
version: "0.3"
|
9
9
|
platform: ruby
|
10
10
|
authors:
|
11
11
|
- xianhua.zhou
|
@@ -13,7 +13,7 @@ autorequire:
|
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
15
|
|
16
|
-
date: 2010-11-
|
16
|
+
date: 2010-11-17 00:00:00 +08:00
|
17
17
|
default_executable: notifyme_daemon
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
@@ -56,13 +56,13 @@ extensions: []
|
|
56
56
|
extra_rdoc_files: []
|
57
57
|
|
58
58
|
files:
|
59
|
-
- lib/
|
60
|
-
- lib/notifyme/
|
59
|
+
- lib/vendor/smtp_add_tls_support.rb
|
60
|
+
- lib/notifyme/log/stdout.rb
|
61
61
|
- lib/notifyme/log/mail.rb
|
62
62
|
- lib/notifyme/log/file.rb
|
63
|
-
- lib/notifyme/
|
63
|
+
- lib/notifyme/task.rb
|
64
|
+
- lib/notifyme/start.rb
|
64
65
|
- lib/notifyme/log.rb
|
65
|
-
- lib/vendor/smtp_add_tls_support.rb
|
66
66
|
- lib/notifyme.rb
|
67
67
|
- README.rdoc
|
68
68
|
- CHANGELOG
|