Refactor auto-boot-ollama-host script into modular structure with separate configuration, network, SSH, and service management modules for improved maintainability and readability

This commit is contained in:
Bastian (BaM)
2025-09-14 17:37:12 +02:00
parent 1442eb3df7
commit 149d8b2191
7 changed files with 340 additions and 174 deletions

56
scripts/README.md Normal file
View File

@@ -0,0 +1,56 @@
# 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
#### `ollama_manager.lua`
Ollama service management:
- `start_service(config)` - Start Ollama service via SSH
- `stop_service_and_shutdown(config)` - Stop service and shutdown host
## 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
## Usage
To use the refactored version, simply run:
```bash
lua auto-boot-ollama-host-refactored.lua
```
The refactored version maintains full compatibility with the original script while providing better structure and maintainability.