home-lab/packages/lab-tool/lab/machines.scm
Geir Okkenhaug Jerstad 564faaa479 feat: implement modular lab tool structure with working CLI
- Add lab/ module structure (core, machines, deployment, monitoring)
- Add mcp/ server stub for future MCP integration
- Update main.scm to use new modular architecture
- Fix utils/config.scm to export get-current-config function
- Create comprehensive test suite with all modules passing
- Update TODO.md with completed high priority tasks

Key improvements:
- Modular design following K.I.S.S principles
- Working CLI interface for status, machines, deploy commands
- Infrastructure status checking functional
- All module tests passing
- Clean separation of pure/impure functions

CLI now works: ./main.scm status, ./main.scm machines, ./main.scm deploy <machine>
2025-06-16 14:29:00 +02:00

19 lines
655 B
Scheme

;; lab/machines.scm - Machine management (impure)
(define-module (lab machines)
#:use-module (utils config)
#:use-module (utils logging)
#:export (list-machines
get-machine-info))
;; Impure function: List all machines with logging
(define (list-machines)
"List all configured machines (impure - has logging side effects)"
(log-debug "Listing machines...")
(get-all-machines))
;; Impure function: Get machine information
(define (get-machine-info machine-name)
"Get detailed machine information (impure - has logging side effects)"
(log-debug "Getting info for machine: ~a" machine-name)
(get-machine-config machine-name))