helper_classes 0.3.1 → 0.3.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/helper_classes.gemspec +3 -3
- data/lib/helper_classes/dputs.rb +35 -15
- data/lib/helper_classes/service.rb +9 -0
- data/lib/helper_classes/system.rb +34 -1
- data/lib/helper_classes/virtual.rb +17 -0
- data/lib/helper_classes.rb +3 -7
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fae65be85ffe47f9f08c0454d77b14a9cb65c1ec
|
4
|
+
data.tar.gz: f3391e02c3bb88c9d30ab6539f68dfd33ec5b1e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 945c14738b13388cbe87c9b0f1fa31579d4b34c52fded06710b8deea1112fa31ff2111eae18be4332114c411e60f1cb0e7e3bbf97657cc8627d9238bf37de64e
|
7
|
+
data.tar.gz: 047748387d592edb99ce9e40885ff6bf0c9687106e11f459eb7b1658f77df168aed8baf06700bbbd95e39fea37e8e71ee1468c506b9bbf1d9391033aa8bc3a99
|
data/helper_classes.gemspec
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'helper_classes'
|
3
|
-
s.version = '0.3.
|
4
|
-
s.date = '2015-
|
3
|
+
s.version = '0.3.5'
|
4
|
+
s.date = '2015-06-20'
|
5
5
|
s.summary = 'Hash._accessor Array.to_sym and DPuts'
|
6
6
|
s.description = 'Added accessors to Hash, to_sym to Array and a nice debugging-interface called DPuts'
|
7
7
|
s.authors = ['Linus Gasser']
|
8
8
|
s.email = 'ineiti@linusetviviane.ch'
|
9
9
|
|
10
|
-
s.files = `git ls-files -z`.split("\x0")
|
10
|
+
s.files = `if [ -d '.git' ]; then git ls-files -z; fi`.split("\x0")
|
11
11
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
12
12
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
13
13
|
s.require_paths = ['lib']
|
data/lib/helper_classes/dputs.rb
CHANGED
@@ -4,13 +4,28 @@ module HelperClasses
|
|
4
4
|
|
5
5
|
module DPuts
|
6
6
|
extend self
|
7
|
-
attr_accessor :mutex, :silent, :show_time, :terminal_width, :log_file
|
7
|
+
attr_accessor :mutex, :silent, :show_time, :terminal_width, :log_file,
|
8
|
+
:logall_file, :max_msg_len
|
8
9
|
|
9
10
|
@mutex = Mutex.new
|
10
11
|
@silent = false
|
11
12
|
@show_time = false
|
12
13
|
@terminal_width = 160
|
14
|
+
@max_msg_len = 8192
|
13
15
|
@log_file = false
|
16
|
+
@logall_file = false
|
17
|
+
|
18
|
+
def logfile_valid(f)
|
19
|
+
return f && f.to_s.length > 0 && File.exists?(File.dirname(f))
|
20
|
+
end
|
21
|
+
|
22
|
+
def dputs_write(str)
|
23
|
+
if logfile_valid(DPuts.logall_file)
|
24
|
+
IO.write(DPuts.logall_file, str, mode: 'a')
|
25
|
+
else
|
26
|
+
puts str
|
27
|
+
end
|
28
|
+
end
|
14
29
|
|
15
30
|
def dputs_out(n, s, call)
|
16
31
|
return if DPuts.silent
|
@@ -27,8 +42,9 @@ module HelperClasses
|
|
27
42
|
show = (now.to_i / 3600).floor != ($dputs_time.to_i / 3600).floor
|
28
43
|
end
|
29
44
|
if show
|
30
|
-
|
31
|
-
Time.now.strftime('%Y-%m-%d %H:%M:%S')
|
45
|
+
str = "\n *** It is now: " +
|
46
|
+
Time.now.strftime('%Y-%m-%d %H:%M:%S') + "\n"
|
47
|
+
dputs_write(str)
|
32
48
|
$dputs_time = now
|
33
49
|
end
|
34
50
|
end
|
@@ -41,22 +57,25 @@ module HelperClasses
|
|
41
57
|
func.to_s).ljust(30, ['X', 'x', '*', '-', '.', ' '][n])
|
42
58
|
lines = []
|
43
59
|
pos = 0
|
44
|
-
|
60
|
+
# Don't show enormous strings
|
61
|
+
s_trunc = s[0..DPuts.max_msg_len]
|
62
|
+
while (pos < s_trunc.length)
|
45
63
|
len = width
|
46
|
-
if
|
47
|
-
len =
|
64
|
+
if s_trunc.length - pos > width
|
65
|
+
len = s_trunc.rindex(/[, .;=&>]/, pos + width)
|
48
66
|
len = len ? len - pos + 1 : width
|
49
67
|
if len < width / 2
|
50
68
|
len = width
|
51
69
|
end
|
52
70
|
end
|
53
|
-
lines.push
|
71
|
+
lines.push s_trunc.slice(pos, len)
|
54
72
|
pos += len
|
55
73
|
end
|
56
|
-
|
74
|
+
str = who + ' ' + lines.shift.to_s + "\n"
|
57
75
|
lines.each { |l|
|
58
|
-
|
76
|
+
str += ' ' * (32) + l + "\n"
|
59
77
|
}
|
78
|
+
dputs_write(str)
|
60
79
|
end
|
61
80
|
end
|
62
81
|
|
@@ -97,15 +116,16 @@ module HelperClasses
|
|
97
116
|
|
98
117
|
def log_msg(mod, msg)
|
99
118
|
dputs(1) { "Info from #{mod}: #{msg}" }
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
119
|
+
if logfile_valid(DPuts.log_file)
|
120
|
+
File.open(DPuts.log_file, 'a') { |f|
|
121
|
+
str = Time.now.strftime("%a %y.%m.%d-%H:%M:%S #{mod}: #{msg}")
|
122
|
+
f.puts str
|
123
|
+
}
|
124
|
+
end
|
105
125
|
end
|
106
126
|
|
107
127
|
def dlog_msg(mod, msg)
|
108
|
-
ddputs(1){"Info from #{mod}: #{msg}"}
|
128
|
+
ddputs(1) { "Info from #{mod}: #{msg}" }
|
109
129
|
end
|
110
130
|
end
|
111
131
|
end
|
@@ -91,6 +91,15 @@ module HelperClasses
|
|
91
91
|
)
|
92
92
|
end
|
93
93
|
|
94
|
+
def reload
|
95
|
+
return unless @system == :ArchLinux
|
96
|
+
System.run_bool('/usr/bin/systemctl daemon-reload')
|
97
|
+
end
|
98
|
+
|
99
|
+
def daemon_reload
|
100
|
+
reload
|
101
|
+
end
|
102
|
+
|
94
103
|
def enable_start(service)
|
95
104
|
enable(service)
|
96
105
|
start(service)
|
@@ -25,11 +25,12 @@ module HelperClasses
|
|
25
25
|
def rescue_all(msg = 'Error')
|
26
26
|
begin
|
27
27
|
yield
|
28
|
-
rescue
|
28
|
+
rescue StandardError => e
|
29
29
|
dputs(0) { "#{Time.now.strftime('%a %y.%m.%d-%H:%M:%S')} - #{msg}" }
|
30
30
|
dputs(0) { "#{e.inspect}" }
|
31
31
|
dputs(0) { "#{e.to_s}" }
|
32
32
|
e.backtrace.each { |l| dputs(0) { l } }
|
33
|
+
return false
|
33
34
|
end
|
34
35
|
end
|
35
36
|
|
@@ -49,5 +50,37 @@ module HelperClasses
|
|
49
50
|
return ''
|
50
51
|
end
|
51
52
|
end
|
53
|
+
|
54
|
+
# Returns the stratum of the ntpd-synchronization:
|
55
|
+
# 16 -> not synchronized
|
56
|
+
# 2..15 -> synchronized
|
57
|
+
def ntpdstratum
|
58
|
+
ret = System.run_str('ntpq -c "rv 0 stratum"')
|
59
|
+
return 16 if ret =~ /connection refused/i
|
60
|
+
stratum = ret.gsub(/.*=/, '')
|
61
|
+
return stratum
|
62
|
+
end
|
63
|
+
|
64
|
+
# Waits for NTP to be synchronized or for _n_ seconds
|
65
|
+
def ntpd_wait(n = 60)
|
66
|
+
Thread.new {
|
67
|
+
(1..n).each {
|
68
|
+
break if System.ntpdstratum < 16
|
69
|
+
sleep 1
|
70
|
+
}
|
71
|
+
yield
|
72
|
+
}
|
73
|
+
end
|
74
|
+
|
75
|
+
# Returns the offset of the ntpd-synchronization:
|
76
|
+
# nil -> not synchronized
|
77
|
+
# else -> synchronization in ms
|
78
|
+
def ntpdoffset
|
79
|
+
ret = System.run_str('ntpq -c "rv 0 stratum,offset"')
|
80
|
+
return nil if ret =~ /connection refused/i
|
81
|
+
stratum, offset = ret.split(/, /).collect { |s| s.gsub(/.*=/, '') }
|
82
|
+
return nil if stratum == '16'
|
83
|
+
return offset
|
84
|
+
end
|
52
85
|
end
|
53
86
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
class VirtualMethodCalledError < RuntimeError
|
2
|
+
attr :name
|
3
|
+
def initialize(name)
|
4
|
+
super("Virtual function '#{name}' called")
|
5
|
+
@name = name
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class Module
|
10
|
+
def virtual(*methods)
|
11
|
+
methods.each do |m|
|
12
|
+
define_method(m) {
|
13
|
+
raise VirtualMethodCalledError, m
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/helper_classes.rb
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
|
4
|
-
require 'helper_classes/readconfig'
|
5
|
-
require 'helper_classes/service'
|
6
|
-
require 'helper_classes/system'
|
7
|
-
require 'helper_classes/timing'
|
1
|
+
Dir.glob('helper_classes/*.rb').each { |d|
|
2
|
+
require d
|
3
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: helper_classes
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Linus Gasser
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Added accessors to Hash, to_sym to Array and a nice debugging-interface
|
14
14
|
called DPuts
|
@@ -29,6 +29,7 @@ files:
|
|
29
29
|
- lib/helper_classes/service.rb
|
30
30
|
- lib/helper_classes/system.rb
|
31
31
|
- lib/helper_classes/timing.rb
|
32
|
+
- lib/helper_classes/virtual.rb
|
32
33
|
- test/hc_service.rb
|
33
34
|
- test/test.rb
|
34
35
|
- test/test_arraysym.rb
|