command_timer 0.0.8 → 0.0.9
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/lib/command_timer/command.rb +40 -12
- data/lib/command_timer/runner.rb +5 -1
- data/lib/command_timer/version.rb +1 -1
- metadata +2 -2
@@ -4,12 +4,13 @@ module CommandTimer
|
|
4
4
|
attr_accessor :description
|
5
5
|
attr_accessor :content
|
6
6
|
attr_accessor :observer
|
7
|
+
attr_accessor :grep
|
7
8
|
|
8
9
|
def burn_time
|
9
10
|
if @burn_time =~ /[0-9]{2}:[0-9]{2}:[0-9]{2}/
|
10
11
|
CommandTimer.parse_time(@burn_time)
|
11
12
|
else
|
12
|
-
|
13
|
+
@burn_time
|
13
14
|
end
|
14
15
|
end
|
15
16
|
|
@@ -17,26 +18,53 @@ module CommandTimer
|
|
17
18
|
echo_command
|
18
19
|
system @content
|
19
20
|
if @observer
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
run_observer
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def echo_command
|
26
|
+
@content.split(';').each do |line|
|
27
|
+
puts ">> #{line.strip.gsub('\\', '')}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def run_observer
|
32
|
+
puts "===================="
|
33
|
+
puts "= Start observer, input S to stop it."
|
34
|
+
puts "= #{@observer}"
|
35
|
+
puts "===================="
|
36
|
+
observer_thread = Thread.new do
|
37
|
+
if @grep
|
38
|
+
run_grep
|
39
|
+
else
|
25
40
|
system @observer
|
26
41
|
end
|
27
|
-
|
42
|
+
end
|
43
|
+
observer_thread.run
|
44
|
+
interaction_thread = Thread.new do
|
28
45
|
input = ""
|
29
46
|
until ["s", "S", "stop"].include?(input) do
|
30
47
|
input = STDIN.gets.chomp
|
31
48
|
end
|
32
|
-
thread.kill
|
33
|
-
puts "Observer stopped."
|
34
49
|
end
|
50
|
+
interaction_thread.run
|
51
|
+
while observer_thread.alive? and interaction_thread.alive? do
|
52
|
+
end
|
53
|
+
observer_thread.kill
|
54
|
+
interaction_thread.kill
|
55
|
+
puts "Observer stopped."
|
35
56
|
end
|
36
57
|
|
37
|
-
def
|
38
|
-
|
39
|
-
|
58
|
+
def run_grep
|
59
|
+
current_count = 0
|
60
|
+
grep_str = @grep.split(",").first
|
61
|
+
end_count = @grep.split(",").last.to_i
|
62
|
+
IO.popen @observer do |f|
|
63
|
+
while line = f.gets
|
64
|
+
puts line
|
65
|
+
current_count += 1 if line.include?(grep_str)
|
66
|
+
break if current_count >= end_count
|
67
|
+
end
|
40
68
|
end
|
41
69
|
end
|
42
70
|
end
|
data/lib/command_timer/runner.rb
CHANGED
@@ -14,7 +14,11 @@ module CommandTimer
|
|
14
14
|
puts "# #{command.description}" if command.description
|
15
15
|
puts "####################"
|
16
16
|
if command.burn_time
|
17
|
-
|
17
|
+
if ['auto', 'Auto'].include?(command.burn_time)
|
18
|
+
command.exec
|
19
|
+
else
|
20
|
+
count_down_and_burn_command(command)
|
21
|
+
end
|
18
22
|
else
|
19
23
|
wait_input_to_continue(command)
|
20
24
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: command_timer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-07-
|
12
|
+
date: 2012-07-13 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Simple tool to execute commands on schedule
|
15
15
|
email:
|