Files
auto-boot-ollama-host/scripts/README.md
Bastian (BaM) eb83c4ccbd Add desktop session detection to auto-boot-ollama-host script
Implement a new module for checking if the user is logged into a Windows desktop session. The script now skips Ollama startup and shutdown if the user is currently logged in, preventing interruptions. Update README to reflect new features and module structure.
2025-09-14 18:27:39 +02:00

86 lines
2.5 KiB
Markdown

# Auto-Boot Ollama Host - Refactored Structure
This directory contains the refactored version of the auto-boot-ollama-host script, split into multiple modules for better maintainability and structure.
## File Structure
### Main Script
- `auto-boot-ollama-host.lua` - Original monolithic script
- `auto-boot-ollama-host-refactored.lua` - New modular main script
### Modules
#### `config.lua`
Handles all environment variable configuration with sensible defaults:
- Docker configuration (container name, since time)
- Ollama service configuration (host, port)
- SSH configuration (port, user, identity file)
- Pattern configuration (error and finish patterns)
- Wake-on-LAN configuration
#### `utils.lua`
Provides utility functions:
- `log(msg)` - Timestamped logging
- `getenv(name, def)` - Environment variable with default
#### `network.lua`
Network-related functionality:
- `port_is_up(host, port, timeout)` - Check if TCP port is accessible
- `send_wol(mac, bcast_ip, port)` - Send Wake-on-LAN magic packet
#### `ssh.lua`
SSH command execution:
- `execute(command, user, host, port, identity_file)` - Execute remote SSH command
- `execute_with_output(command, user, host, port, identity_file)` - Execute SSH command and return output
#### `ollama_manager.lua`
Ollama service management:
- `start_service(config)` - Start Ollama service via SSH
- `stop_service_and_shutdown(config)` - Stop service and shutdown host
#### `session_check.lua`
Windows desktop session detection:
- `is_user_logged_in_enhanced(config)` - Check if user is logged into desktop session
## Benefits of Refactoring
1. **Separation of Concerns**: Each module has a single responsibility
2. **Reusability**: Modules can be reused in other projects
3. **Testability**: Individual modules can be unit tested
4. **Maintainability**: Easier to locate and modify specific functionality
5. **Readability**: Clear structure and organization
6. **Configuration**: Centralized configuration management
## New Features
### Desktop Session Detection
The refactored version now includes Windows desktop session detection:
- Checks if the SSH_USER is currently logged into a Windows desktop session
- If user is logged in, skips Ollama startup/shutdown to avoid interruption
- If user is not logged in, proceeds with normal operation
## Usage
To use the refactored version, simply run:
```bash
lua auto-boot-ollama-host.lua
```
The refactored version maintains full compatibility with the original script while providing better structure and maintainability.