feat(tools): add update command to lab tool
- Add update_all_machines function to deploy to all remote machines - Support all deployment modes: boot, test, switch - Provide detailed progress feedback and error reporting - Update help text with new command and examples Usage: lab update [mode] Example: lab update switch # Update all machines immediately
This commit is contained in:
parent
7a43630bc6
commit
1b97799701
1 changed files with 47 additions and 0 deletions
|
@ -76,6 +76,33 @@ writeShellScriptBin "lab" ''
|
||||||
success "Successfully deployed $machine"
|
success "Successfully deployed $machine"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Update all machines function
|
||||||
|
update_all_machines() {
|
||||||
|
local mode="''${1:-boot}" # boot, test, or switch
|
||||||
|
local machines=("sleeper-service" "grey-area" "reverse-proxy")
|
||||||
|
local failed_machines=()
|
||||||
|
|
||||||
|
log "Starting update of all machines (mode: $mode)"
|
||||||
|
|
||||||
|
for machine in "''${machines[@]}"; do
|
||||||
|
log "Updating $machine..."
|
||||||
|
if deploy_machine "$machine" "$mode"; then
|
||||||
|
success "✓ $machine updated successfully"
|
||||||
|
else
|
||||||
|
error "✗ Failed to update $machine"
|
||||||
|
failed_machines+=("$machine")
|
||||||
|
fi
|
||||||
|
echo "" # Add spacing between machines
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ ''${#failed_machines[@]} -eq 0 ]]; then
|
||||||
|
success "All machines updated successfully!"
|
||||||
|
else
|
||||||
|
error "Failed to update: ''${failed_machines[*]}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Show deployment status
|
# Show deployment status
|
||||||
show_status() {
|
show_status() {
|
||||||
log "Home-lab infrastructure status:"
|
log "Home-lab infrastructure status:"
|
||||||
|
@ -118,10 +145,26 @@ writeShellScriptBin "lab" ''
|
||||||
deploy_machine "$machine" "$mode"
|
deploy_machine "$machine" "$mode"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"update-all")
|
||||||
|
mode="''${2:-boot}"
|
||||||
|
update_all_machines "$mode"
|
||||||
|
;;
|
||||||
|
|
||||||
"status")
|
"status")
|
||||||
show_status
|
show_status
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"update")
|
||||||
|
mode="''${2:-boot}"
|
||||||
|
|
||||||
|
if [[ ! "$mode" =~ ^(boot|test|switch)$ ]]; then
|
||||||
|
error "Invalid mode: $mode. Use boot, test, or switch"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_all_machines "$mode"
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "Home-lab Management Tool"
|
echo "Home-lab Management Tool"
|
||||||
echo ""
|
echo ""
|
||||||
|
@ -131,11 +174,15 @@ writeShellScriptBin "lab" ''
|
||||||
echo " deploy <machine> [mode] - Deploy configuration to a machine"
|
echo " deploy <machine> [mode] - Deploy configuration to a machine"
|
||||||
echo " Machines: sleeper-service, grey-area, reverse-proxy"
|
echo " Machines: sleeper-service, grey-area, reverse-proxy"
|
||||||
echo " Modes: boot (default), test, switch"
|
echo " Modes: boot (default), test, switch"
|
||||||
|
echo " update [mode] - Update all machines"
|
||||||
|
echo " Modes: boot (default), test, switch"
|
||||||
echo " status - Check infrastructure connectivity"
|
echo " status - Check infrastructure connectivity"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Examples:"
|
echo "Examples:"
|
||||||
echo " lab deploy sleeper-service boot # Deploy and set for next boot"
|
echo " lab deploy sleeper-service boot # Deploy and set for next boot"
|
||||||
echo " lab deploy grey-area switch # Deploy and switch immediately"
|
echo " lab deploy grey-area switch # Deploy and switch immediately"
|
||||||
|
echo " lab update boot # Update all machines for next boot"
|
||||||
|
echo " lab update switch # Update all machines immediately"
|
||||||
echo " lab status # Check all machines"
|
echo " lab status # Check all machines"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue