From 9244c7f92be3af4051904ffa756c8bc4fdf4ef2b Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 29 Jan 2023 16:01:45 +0000 Subject: [PATCH] fix(xbar/brew-services): handle when no brew services are installed --- xbar/brew-services.10m.rb | 64 +++++++++++++++++++++------------------ 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/xbar/brew-services.10m.rb b/xbar/brew-services.10m.rb index ec6baf9..d8c1230 100755 --- a/xbar/brew-services.10m.rb +++ b/xbar/brew-services.10m.rb @@ -2,7 +2,7 @@ # frozen_string_literal: true # Brew Services -# v3.0.0 +# v3.0.1 # Jim Myhrberg # jimeh # List and manage Homebrew Services @@ -283,35 +283,39 @@ module Brew printer.item(status_label(visible)) do |printer| printer.sep printer.item(':hourglass: Refresh', refresh: true) - printer.sep - if visible.stopped.size.positive? - printer.item( - "Start All (#{visible.stopped.size} services)", - terminal: false, refresh: true, - shell: [brew_path, 'services', 'start', '--all'] - ) - else - printer.item("Start All (#{visible.stopped.size} services)") - end - if visible.started.size.positive? - printer.item( - "Stop All (#{visible.started.size} services)", - terminal: false, refresh: true, - shell: [brew_path, 'services', 'stop', '--all'] - ) - else - printer.item("Stop All (#{visible.started.size} services)") - end - if visible.size.positive? - count = visible.started.size + visible.stopped.size - printer.item( - "Restart All (#{count} services)", - terminal: false, refresh: true, - shell: [brew_path, 'services', 'restart', '--all'] - ) - else - printer.item("Restart All (#{visible.size} services)") + + unless all_services.empty? + printer.sep + if visible.stopped.size.positive? + printer.item( + "Start All (#{visible.stopped.size} services)", + terminal: false, refresh: true, + shell: [brew_path, 'services', 'start', '--all'] + ) + else + printer.item("Start All (#{visible.stopped.size} services)") + end + if visible.started.size.positive? + printer.item( + "Stop All (#{visible.started.size} services)", + terminal: false, refresh: true, + shell: [brew_path, 'services', 'stop', '--all'] + ) + else + printer.item("Stop All (#{visible.started.size} services)") + end + if visible.size.positive? + count = visible.started.size + visible.stopped.size + printer.item( + "Restart All (#{count} services)", + terminal: false, refresh: true, + shell: [brew_path, 'services', 'restart', '--all'] + ) + else + printer.item("Restart All (#{visible.size} services)") + end end + printer.sep if use_groups? printer.item('Disable groups', rpc: ['disable_groups'], refresh: true) @@ -493,6 +497,8 @@ module Brew return @all_services if @all_services output = cmd(brew_path, 'services', 'list', '--json') + return ServiceList.new([]) if output == '' + data = JSON.parse(output) @all_services = ServiceList.new(