esphome 0.5.2 → 0.5.3

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/exe/esphome-update-all +66 -0
  3. metadata +18 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c07adf8176867c71471bbeeadd97a624545d03d20d3944485523430915cc0da9
4
- data.tar.gz: ae1a081b22d892ab69b69a2629fc028178c923f6ae0ce2ced906836fb871bdd2
3
+ metadata.gz: 1565f5ad432e314abd587d62dd4e3351cc2367ef709195e478c0409852b99a8b
4
+ data.tar.gz: 1de0d14cd8c55a091a6a55c4eeb329edcacc170c6c5b574a7df413f04cfecf60
5
5
  SHA512:
6
- metadata.gz: 53ff7fa2666e09e28f6087ac55091008b340358682268ac4ef441a7e91c3291feca87c8a91a324a998c36a6eecdd3fa22f2b1677278109a62023a2c3b9228ac3
7
- data.tar.gz: 998b8fe865ea666b4db5b0ef0e85199b084437eb99a51019a75bdb2c145c889404f682989c44b8207b40766d6b8ce8a0f3e8969524342d74dd9187d1181beae0
6
+ metadata.gz: d0221e2fdcc383d506b8904295a5f9bd3f09b30325ee895c98d31f61749034e4c4914083550bc3f1d35b1e96c6173c503c1fcf602cc9c4ac0b4ad0302fbf1d57
7
+ data.tar.gz: 81086ec6839e0cf6cbbc19db4f99d16d2e9529d38729cda31ee0320083cadb91baed0e322ad8c5af55507197ad780a162d2b0803ba9b0260ff236f3a52321f55
@@ -0,0 +1,66 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "optparse"
5
+
6
+ uri = "http://localhost:6052/"
7
+ opts = OptionParser.new do |opts|
8
+ opts.banner = <<~TEXT
9
+ Usage: esphome-update-all [<uri>] <device_name...>
10
+
11
+ Example: esphome-update-all
12
+ If URI is omitted, it defaults to http://localhost:6052/
13
+ TEXT
14
+
15
+ opts.on("-h", "--help", "Show this help message") do
16
+ puts opts
17
+ exit
18
+ end
19
+ end
20
+ opts.parse!
21
+
22
+ uri = ARGV.shift if ARGV.first&.include?(":")
23
+
24
+ require "esphome/dashboard"
25
+
26
+ dashboard = ESPHome::Dashboard.new(uri)
27
+
28
+ devices = dashboard.devices
29
+
30
+ unless ARGV.empty?
31
+ all_devices = devices
32
+ devices = []
33
+ ARGV.each do |device_name|
34
+ devices.concat(all_devices.select { |d| File.fnmatch(device_name, d["name"]) })
35
+ end
36
+ devices.uniq!
37
+
38
+ puts "Updating #{devices.map { |d| d["name"] }.join(", ")}..."
39
+ end
40
+
41
+ if devices.empty?
42
+ warn "No matching devices found."
43
+ exit 1
44
+ end
45
+
46
+ results = dashboard.update_all(devices) do |line|
47
+ $stdout.print line
48
+ end
49
+
50
+ puts "\n\n"
51
+ successes, failures = results.partition { |_, v| v }
52
+
53
+ {
54
+ Successful: successes,
55
+ Failed: failures
56
+ }.each do |status, group|
57
+ next if group.empty?
58
+
59
+ puts "#{status} Updates:\n"
60
+
61
+ group.each do |device, _| # rubocop:disable Style/HashEachMethods
62
+ puts " - #{device["name"]}"
63
+ end
64
+ end
65
+
66
+ exit(failures.empty? ? 0 : 1)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: esphome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-10-09 00:00:00.000000000 Z
10
+ date: 2025-11-03 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: curses
@@ -79,14 +79,30 @@ dependencies:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
81
  version: '0.10'
82
+ - !ruby/object:Gem::Dependency
83
+ name: websocket-driver
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.8'
89
+ type: :runtime
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.8'
82
96
  email:
83
97
  - cody@cutrer.us
84
98
  executables:
85
99
  - esphome-monitor
100
+ - esphome-update-all
86
101
  extensions: []
87
102
  extra_rdoc_files: []
88
103
  files:
89
104
  - exe/esphome-monitor
105
+ - exe/esphome-update-all
90
106
  homepage: https://github.com/ccutrer/esphome-ruby
91
107
  licenses:
92
108
  - MIT