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:
56
scripts/README.md
Normal file
56
scripts/README.md
Normal 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.
|
||||
Reference in New Issue
Block a user