pipark 0.3.0 → 0.4.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
  SHA256:
3
- metadata.gz: a283797d2ab7b8ebc207e1da5eebe51c0cffce31580f15c3422a1636aa14f873
4
- data.tar.gz: 00a4a21b4f7f83aab90342054115df76c44d504ac11c1ec2e8b0a6bdd46d8a56
3
+ metadata.gz: 2ef25701d6f7c1331843542c55035b9be6818e714f5a60da446d12f36b7334ff
4
+ data.tar.gz: 0fe78b693ccf16beb4009a77e93b27c0402ea6947bfef8a69920ad30ac62e524
5
5
  SHA512:
6
- metadata.gz: 1a3e18759d30af1d5bef885e619b1e85c1316a2b1b1154c2a9f912e16892adf6d8a4895028e8067155c64a9b2a116f7f5763a13720079a186833cc394c76b724
7
- data.tar.gz: 12cf29853a18afefd5fd1f8f4994d3d08a75188c5c3a49c4619e6098d2ba1ceafe07c50715924d6e50a8a641311c47600911147dca19fab0a27c5deeffc0d446
6
+ metadata.gz: 398e4add97a1605f39191559ab9bdaf161dcfd9545001e539f347b641f93b88c74c50d955ce620c6bc5a502cca97fd29a1ea7191fd8b49d4204a1ea72e1d6f94
7
+ data.tar.gz: '092a6468c752956b9c929ceca6e77a1945229fae1412e5da72c81b9165059853a01ab211d74b5496141070f10db7eec7cd542f3340d29b57661d853545cafb39'
data/lib/pipark/host.rb CHANGED
@@ -94,9 +94,41 @@ module Pipark
94
94
  end
95
95
  end
96
96
 
97
+ # Experimental: returns the status of the host's LEDs.
98
+ #
99
+ # Only supported for localhost.
100
+ def leds
101
+ dir = '/sys/class/leds'
102
+ if localhost?
103
+ Dir[dir + '/led[0-9]'].map do |f|
104
+ if f.match(dir + '/(led\d)')
105
+ [ $1, get_led_status($1).first ]
106
+ end
107
+ end.to_h
108
+ end
109
+ end
110
+
111
+ # Experimental: returns info for the installed HAT, or false if no HAT is found.
112
+ #
113
+ # Only supported for localhost.
114
+ def hat
115
+ if localhost?
116
+ dir = '/sys/firmware/devicetree/base/hat'
117
+ if File.exist? dir
118
+ %w(product vendor).map do |k|
119
+ file = "#{dir}/#{k}"
120
+ [ k, File.readable?(file) ? File.read(file).chop : nil ]
121
+ end.to_h
122
+ else
123
+ false
124
+ end
125
+ end
126
+ end
127
+
97
128
  # Returns the host's state.
98
129
  def state
99
- %w(
130
+ result = { 'update_time' => Time.now.gmtime }
131
+ result.merge %w(
100
132
  address hostname model serial_number
101
133
  os_release boot_time
102
134
  ruby
@@ -126,6 +158,13 @@ module Pipark
126
158
  end
127
159
  end
128
160
 
161
+ def get_led_status(led)
162
+ file = "/sys/class/leds/#{led}/trigger"
163
+ if File.readable? file
164
+ [ File.read(file).sub(/\[(.*)\]/, '\1').split, $1 ].reverse
165
+ end
166
+ end
167
+
129
168
  def _view_21x8
130
169
  view = 'RPi ' + hostname.rjust(17) + "\n\n"
131
170
  view << os_release['NAME'].center(21) + "\n"
@@ -1,7 +1,7 @@
1
1
  module Pipark
2
2
 
3
3
  # pipark version.
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
 
6
6
  # Returns Pipark::VERSION.
7
7
  def self.version
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pipark
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - lllist.eu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-23 00:00:00.000000000 Z
11
+ date: 2023-01-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: