pi-sys 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1b262a028c9922df2c8c93f5976198472cdb0458
4
- data.tar.gz: 8c9f60acf87cf626684e92ced2106f2de236504d
3
+ metadata.gz: 46b112b42f371da35306d1290c0df6f53131abc3
4
+ data.tar.gz: c3cbd134adfdd906b581616f59bc4ae0ff35b68c
5
5
  SHA512:
6
- metadata.gz: f2e6f0815f25873703c05762248870c3c5e9f199fadeb88a711d5fc1e67b8d3bdfd426b86cd997344777244c3aa1274844dc86f6365c4df81c364cadae1f5c9f
7
- data.tar.gz: 7f74bad823c5b7ed7133eb4dcc01efa904e2ee4e1d956bac6dd294f3bd85bf7c4fefa8e4ad53e96f5e97866a3eac08d0c5cf45c56cd4e0fdec167a0645fc5074
6
+ metadata.gz: 82a7a0a3d294bdbc8b5d33a6f58f52d7516349abcfff72137ed7080e9740dce02b1b4109a902d3fb9f7b546d8d136c67dd28efd7120b19e18ded3f3b0e8ad0ef
7
+ data.tar.gz: 39e5b3e09d5bf263488c44a55ea5d3f5631ef134e644f5c8de4edce1d9689a89ed5beffe2cfa25d41d4f3c2c519dd828b099c4f56c7781059eed04a100844337
data/lib/pi-sys.rb CHANGED
@@ -12,10 +12,12 @@ require 'lib/pi-sys/stats/temperature'
12
12
  require 'lib/pi-sys/stats/uptime'
13
13
  require 'lib/pi-sys/stats/voltage'
14
14
  require 'lib/pi-sys/stats/bandwidth'
15
+ require 'lib/pi-sys/stats/deluge'
15
16
 
16
17
  module PiSys
17
18
  STATS = {}
18
- MODULES = [:cpu, :disk, :memory, :clock, :voltage, :temperature, :codec, :config, :uptime, :bandwidth].map { |mod|
19
+ MODULES = [:cpu, :disk, :memory, :clock, :voltage, :temperature,
20
+ :codec, :config, :uptime, :bandwidth, :deluge].map { |mod|
19
21
  {mod => const_get(mod.to_s.capitalize).new}
20
22
  }.reduce({}, :merge)
21
23
 
@@ -13,12 +13,16 @@ module PiSys
13
13
 
14
14
  output = run_command 'pidstat -h'
15
15
 
16
- to_hash(KEY, output, 3) do |data|
17
- name = data[7]
18
- {name => {user: data[2].to_f, system: data[3].to_f, guest: data[4].to_f, total: data[5].to_f}}
19
- end
16
+ if output
17
+ to_hash(KEY, output, 3) do |data|
18
+ name = data[7]
19
+ {name => {user: data[2].to_f, system: data[3].to_f, guest: data[4].to_f, total: data[5].to_f}}
20
+ end
20
21
 
21
- Hash[STATS[KEY].sort_by{|_, v| -v[:total]}]
22
+ Hash[STATS[KEY].sort_by{|_, v| -v[:total]}]
23
+ else
24
+ STATS[KEY]
25
+ end
22
26
  end
23
27
  end
24
28
  end
@@ -0,0 +1,32 @@
1
+ module PiSys
2
+ class Deluge < Stats
3
+
4
+ KEY = :deluge
5
+ VARIATIONS = nil
6
+
7
+ def initialize
8
+ super(KEY, VARIATIONS)
9
+ end
10
+
11
+ def fetch
12
+ STATS[KEY] = []
13
+
14
+ output = run_command 'deluge-console info'
15
+
16
+ if output
17
+ hash = {}
18
+ output.strip.split("\n")[0..-1].each do |data_line|
19
+ if data_line.empty?
20
+ STATS[KEY] << hash
21
+ hash = {}
22
+ else
23
+ data = data_line.split(':')
24
+ hash[data[0].downcase] = data[1..-1].join.strip
25
+ end
26
+ end
27
+ STATS[KEY] << hash
28
+ end
29
+ STATS[KEY]
30
+ end
31
+ end
32
+ end
@@ -12,18 +12,24 @@ module PiSys
12
12
  super
13
13
 
14
14
  output = fetch_io
15
- to_hash([KEY, :io], output, 3) do |data|
16
- name = data[5]
17
- {name => {read: data[2], write: data[3]}}
15
+ if output
16
+ to_hash([KEY, :io], output, 3) do |data|
17
+ name = data[5]
18
+ {name => {read: data[2], write: data[3]}}
19
+ end
18
20
  end
19
21
 
20
22
  output = fetch_usage
21
- to_hash([KEY, :usage], output, 1) do |data|
22
- name = data[0]
23
- {name => {used: data[2], available: data[3].to_i, percentage: data[4].to_i, mounted_on: data[5]}}
23
+
24
+ if output
25
+ to_hash([KEY, :usage], output, 1) do |data|
26
+ name = data[0]
27
+ {name => {used: data[2], available: data[3].to_i, percentage: data[4].to_i, mounted_on: data[5]}}
28
+ end
29
+
30
+ STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v[:percentage] }]
24
31
  end
25
32
 
26
- STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v[:percentage] }]
27
33
  STATS[KEY]
28
34
  end
29
35
 
@@ -15,31 +15,44 @@ module PiSys
15
15
 
16
16
  # status
17
17
  output = fetch_status
18
- output.gsub!(/ kB$/, '').gsub(/\: */, ' ')
19
- to_hash([KEY, :status], output) do |data|
20
- {data[0].gsub(':','') => data[1].to_i / 1024}
21
- end
18
+ if output
19
+ output.gsub!(/ kB$/, '').gsub(/\: */, ' ')
20
+ to_hash([KEY, :status], output) do |data|
21
+ {data[0].gsub(':','') => data[1].to_i / 1024}
22
+ end
22
23
 
23
- STATS[KEY][:status]['MemUsed'] = STATS[KEY][:status]['MemTotal'] - STATS[KEY][:status]['MemFree'] -
24
- STATS[KEY][:status]['Buffers'] - STATS[KEY][:status]['Cached']
24
+ STATS[KEY][:status]['MemUsed'] = STATS[KEY][:status]['MemTotal'] - STATS[KEY][:status]['MemFree'] -
25
+ STATS[KEY][:status]['Buffers'] - STATS[KEY][:status]['Cached']
26
+ else
27
+ STATS[KEY][:status] = {}
28
+ end
25
29
 
26
30
  # info
27
- STATS[KEY][:info] = @vcgencmd.fetch
31
+ output = @vcgencmd.fetch
32
+ if output
33
+ STATS[KEY][:info] = @vcgencmd.fetch
34
+ else
35
+ STATS[KEY][:info] = {}
36
+ end
28
37
 
29
38
  # usage
30
39
  output = fetch_usage
31
- to_hash([KEY, :usage], output, 1) do |data|
32
- name = data[0]
33
- value = data[1].to_i / 1024
34
- if STATS[KEY][:usage][name]
35
- STATS[KEY][:usage][name] += value
36
- {}
37
- else
38
- {name => value}
40
+ if output
41
+ to_hash([KEY, :usage], output, 1) do |data|
42
+ name = data[0]
43
+ value = data[1].to_i / 1024
44
+ if STATS[KEY][:usage][name]
45
+ STATS[KEY][:usage][name] += value
46
+ {}
47
+ else
48
+ {name => value}
49
+ end
39
50
  end
40
- end
41
51
 
42
- STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v }]
52
+ STATS[KEY][:usage] = Hash[STATS[KEY][:usage].sort_by { |_, v| -v }]
53
+ else
54
+ STATS[KEY][:usage] = {}
55
+ end
43
56
  STATS[KEY]
44
57
  end
45
58
 
@@ -13,19 +13,23 @@ module PiSys
13
13
 
14
14
  output = run_command 'uptime'
15
15
 
16
- to_hash(KEY, output) do |data|
17
- index_of_reference = data.index('user,') || data.index('users,')
18
- {
19
- time: data[0],
20
- up: data[2..index_of_reference-2].join(' ').gsub(/(,$)/i,''),
21
- users: data[index_of_reference-1],
22
- load_average: {
23
- one: data[data.length-3].gsub(',',''),
24
- five: data[data.length-2].gsub(',',''),
25
- fiftheen: data[data.length-1].gsub(',','')
16
+ if output
17
+ to_hash(KEY, output) do |data|
18
+ index_of_reference = data.index('user,') || data.index('users,')
19
+ {
20
+ time: data[0],
21
+ up: data[2..index_of_reference-2].join(' ').gsub(/(,$)/i,''),
22
+ users: data[index_of_reference-1],
23
+ load_average: {
24
+ one: data[data.length-3].gsub(',',''),
25
+ five: data[data.length-2].gsub(',',''),
26
+ fiftheen: data[data.length-1].gsub(',','')
27
+ }
26
28
  }
27
- }
29
+ end
28
30
  end
31
+
32
+ STATS[KEY]
29
33
  end
30
34
  end
31
35
  end
@@ -21,12 +21,18 @@ module PiSys
21
21
  hash ||= {}
22
22
  COMMANDS[command].each do |option|
23
23
  output = run_command(command, option)
24
- hash[option] = Hash[output.strip.split("\n").map {|entry| entry.split('=')}]
24
+ if output
25
+ hash[option] = Hash[output.strip.split("\n").map {|entry| entry.split('=')}]
26
+ end
25
27
  end
26
28
  hash
27
29
  else
28
30
  output = run_command(command)
29
- Hash[output.strip.split("\n").map {|entry| entry.split('=')}]
31
+ if output
32
+ Hash[output.strip.split("\n").map {|entry| entry.split('=')}]
33
+ else
34
+ {}
35
+ end
30
36
  end
31
37
  end
32
38
  end
@@ -1,3 +1,3 @@
1
1
  module PiSys
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pi-sys
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - José Airosa
@@ -77,6 +77,7 @@ files:
77
77
  - lib/pi-sys/stats/codec.rb
78
78
  - lib/pi-sys/stats/config.rb
79
79
  - lib/pi-sys/stats/cpu.rb
80
+ - lib/pi-sys/stats/deluge.rb
80
81
  - lib/pi-sys/stats/disk.rb
81
82
  - lib/pi-sys/stats/memory.rb
82
83
  - lib/pi-sys/stats/temperature.rb
@@ -88,8 +89,9 @@ files:
88
89
  - lib/pi-sys.rb
89
90
  - LICENSE
90
91
  - README.md
91
- homepage:
92
- licenses: []
92
+ homepage: https://github.com/joseairosa/pi-sys
93
+ licenses:
94
+ - LICENSE
93
95
  metadata: {}
94
96
  post_install_message:
95
97
  rdoc_options: []