Browse Source

Refactor error and finish pattern handling in auto-boot-ollama-host script

Update the handle_error_pattern and handle_finish_pattern functions to return the powered_on state. This change improves the clarity of the powered_on logic and ensures consistent state management during Ollama startup and shutdown processes.
main
Bastian (BaM) 3 months ago
parent
commit
93bccebdff
  1. 24
      scripts/auto-boot-ollama-host.lua

24
scripts/auto-boot-ollama-host.lua

@ -24,7 +24,8 @@ local function handle_error_pattern(config, powered_on)
local user_logged_in = session_check.is_user_logged_in(config)
if user_logged_in then
utils.log(("User '%s' is currently logged into a desktop session. Skipping Ollama startup to avoid interruption."):format(config.SSH_USER))
utils.log(("User '%s' is currently logged into a desktop session. Skipping Ollama startup to avoid interruption.")
:format(config.SSH_USER))
return powered_on -- Return current powered_on state without changes
end
@ -45,12 +46,18 @@ local function handle_error_pattern(config, powered_on)
-- Wait for SSH and start service
utils.log("Waiting for SSH to become reachable...")
if network.port_is_up(config.OLLAMA_HOST, config.SSH_PORT, 60) then
-- If SSH is reachable, the host is powered on (regardless of WOL status)
powered_on = true
utils.log("SSH is reachable - host is powered on")
ollama_manager.start_service(config)
else
utils.log("SSH timeout - host may not be powered on")
end
return powered_on
end
-- Handle finish pattern detection and shutdown
local function handle_finish_pattern(config)
local function handle_finish_pattern(config, powered_on)
utils.log(("Detected finish pattern: %q"):format(config.FINISH_PATTERN))
-- Check if user is currently logged into a desktop session
@ -58,12 +65,15 @@ local function handle_finish_pattern(config)
local user_logged_in = session_check.is_user_logged_in(config)
if user_logged_in then
utils.log(("User '%s' is currently logged into a desktop session. Skipping shutdown to avoid interruption."):format(config.SSH_USER))
return -- Exit without shutting down
utils.log(("User '%s' is currently logged into a desktop session. Skipping shutdown to avoid interruption."):format(
config.SSH_USER))
return powered_on -- Exit without shutting down
end
utils.log(("User '%s' is not logged into a desktop session. Proceeding with shutdown."):format(config.SSH_USER))
ollama_manager.stop_service_and_shutdown(config)
powered_on = false
return powered_on
end
-- Main application logic
@ -80,14 +90,12 @@ local function main()
for line in fh:lines() do
-- Handle error pattern detection
if line:find(config.ERROR_PATTERN, 1, true) ~= nil then
handle_error_pattern(config, powered_on)
powered_on = true
powered_on = handle_error_pattern(config, powered_on)
end
-- Handle finish pattern detection
if line:find(config.FINISH_PATTERN, 1, true) ~= nil and powered_on == true then
handle_finish_pattern(config)
powered_on = false
powered_on = handle_finish_pattern(config, powered_on)
break
end
end

Loading…
Cancel
Save