pipark 0.3.0 → 0.4.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
  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: