pipark 0.2.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: 44363ae7332962a0dbb230c2a2e854c51a274538945984a11ebbc27a2ef663e1
4
- data.tar.gz: 54afdeebf92a86dcad957a41a55078ab7d892c5091fcc317f9b293e2d3242733
3
+ metadata.gz: 2ef25701d6f7c1331843542c55035b9be6818e714f5a60da446d12f36b7334ff
4
+ data.tar.gz: 0fe78b693ccf16beb4009a77e93b27c0402ea6947bfef8a69920ad30ac62e524
5
5
  SHA512:
6
- metadata.gz: 56075dbe8628691c80181b95df4e27afd1201e8544448c4a4d2785923802d139d08920679ebed64f718a537c36e01214e29291eacea6d9ebc09952c8abffb5ab
7
- data.tar.gz: bfe9aa0bec8a11bb335663848a9bfe10e83c2d00d26dcdeaa79c4a427b239cbc86285804ffaeee9726cce88c1a8bb04a33e8deae8d57f46e299248a5250896a3
6
+ metadata.gz: 398e4add97a1605f39191559ab9bdaf161dcfd9545001e539f347b641f93b88c74c50d955ce620c6bc5a502cca97fd29a1ea7191fd8b49d4204a1ea72e1d6f94
7
+ data.tar.gz: '092a6468c752956b9c929ceca6e77a1945229fae1412e5da72c81b9165059853a01ab211d74b5496141070f10db7eec7cd542f3340d29b57661d853545cafb39'
data/lib/pipark/host.rb CHANGED
@@ -82,6 +82,60 @@ module Pipark
82
82
  cache['serial-number'] ||= file_read('/proc/device-tree/serial-number').chop
83
83
  end
84
84
 
85
+ # Returns version information for the Ruby installed on the host.
86
+ #
87
+ # Nil if no Ruby is found.
88
+ def ruby
89
+ cache['ruby'] ||=
90
+ if localhost?
91
+ RUBY_DESCRIPTION
92
+ else
93
+ (result = sh 'ruby -v').empty? ? nil : result.chomp
94
+ end
95
+ end
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
+
128
+ # Returns the host's state.
129
+ def state
130
+ result = { 'update_time' => Time.now.gmtime }
131
+ result.merge %w(
132
+ address hostname model serial_number
133
+ os_release boot_time
134
+ ruby
135
+ cpu_temperature
136
+ ).map { |m| [m, send(m)] }.to_h
137
+ end
138
+
85
139
  private
86
140
 
87
141
  def cache
@@ -96,6 +150,21 @@ module Pipark
96
150
  end
97
151
  end
98
152
 
153
+ def sh(command)
154
+ if localhost?
155
+ `#{command}`
156
+ else
157
+ `ssh #{address} "#{command}"`
158
+ end
159
+ end
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
+
99
168
  def _view_21x8
100
169
  view = 'RPi ' + hostname.rjust(17) + "\n\n"
101
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.2.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.2.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-06-07 00:00:00.000000000 Z
11
+ date: 2023-01-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: