pi-sys 1.0.0 → 1.1.0

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 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: []