homelab infrastructure services
1#!/bin/bash
2# tin sheet list - List all registered sheets
3
4set -euo pipefail
5
6# Get tinsnip root and source libraries
7SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8TINSNIP_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")"
9source "$TINSNIP_ROOT/lib/core.sh"
10source "$TINSNIP_ROOT/lib/registry.sh"
11
12# List all sheets
13list_all_sheets() {
14 if ! check_tinsnip_station; then
15 error_with_prefix "Sheet List" "Cannot list sheets without topsheet.station-prod"
16 error_with_prefix "Sheet List" "Set up topsheet first: tin machine station prod <nas-server>"
17 return 1
18 fi
19
20 echo "Registered Sheets:"
21 echo "=================="
22
23 if ! list_sheets >/dev/null 2>&1; then
24 echo "No sheets registered yet."
25 echo
26 echo "Register a sheet with: tin sheet create <name>"
27 return 0
28 fi
29
30 # Show sheets with formatting
31 local current_sheet
32 current_sheet=$(get_sheet)
33
34 list_sheets | while IFS='=' read -r sheet_name sheet_number; do
35 if [[ "$sheet_name" == "$current_sheet" ]]; then
36 echo " $sheet_name = $sheet_number (current)"
37 else
38 echo " $sheet_name = $sheet_number"
39 fi
40 done
41
42 echo
43 echo "Current sheet: $current_sheet"
44 echo "Set sheet with: export TIN_SHEET=<name>"
45}
46
47# Main execution
48list_all_sheets