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

Loading…
Cancel
Save