73 lines
2.2 KiB
Nix
73 lines
2.2 KiB
Nix
{writeShellScriptBin}:
|
||
writeShellScriptBin "homelab-generate-docs" ''
|
||
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
# Colors
|
||
BLUE='\033[0;34m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
RED='\033[0;31m'
|
||
NC='\033[0m'
|
||
|
||
info() { echo -e "''${BLUE}$1''${NC}"; }
|
||
success() { echo -e "''${GREEN}$1''${NC}"; }
|
||
warn() { echo -e "''${YELLOW}$1''${NC}"; }
|
||
error() { echo -e "''${RED}$1''${NC}"; }
|
||
|
||
# Configuration
|
||
DOCS_DIR="''${1:-./docs}"
|
||
|
||
info "📚 Generating homelab documentation..."
|
||
echo " Output directory: $DOCS_DIR"
|
||
echo
|
||
|
||
# Check if we're in a directory with a flake
|
||
if [[ ! -f flake.nix ]]; then
|
||
error "No flake.nix found in current directory"
|
||
echo "Please run this command from your homelab flake directory"
|
||
exit 1
|
||
fi
|
||
|
||
# Check if colmena is available
|
||
if ! command -v colmena >/dev/null 2>&1; then
|
||
error "colmena command not found."
|
||
echo "Please ensure colmena is available in your environment"
|
||
exit 1
|
||
fi
|
||
|
||
# Create docs directory
|
||
mkdir -p "$DOCS_DIR"
|
||
|
||
# Generate fleet overview
|
||
info " 🌐 Generating fleet overview..."
|
||
homelab-docs-fleet > "$DOCS_DIR/fleet-overview.md"
|
||
|
||
# Generate node documentation
|
||
info " 🖥️ Generating node configurations..."
|
||
homelab-docs-nodes > "$DOCS_DIR/nodes.md"
|
||
|
||
# Generate service documentation
|
||
info " ⚙️ Generating service configurations..."
|
||
homelab-docs-services > "$DOCS_DIR/services.md"
|
||
|
||
# Generate current deployment
|
||
info " 🏠 Generating current deployment..."
|
||
homelab-docs-deployment > "$DOCS_DIR/current-deployment.md"
|
||
|
||
# Generate README
|
||
info " 📋 Generating README..."
|
||
homelab-docs-readme > "$DOCS_DIR/README.md"
|
||
|
||
success "✅ Documentation generated successfully!"
|
||
echo
|
||
echo "Generated files:"
|
||
echo " 🌐 fleet-overview.md - Fleet statistics and overview"
|
||
echo " 🖥️ nodes.md - Per-node configurations"
|
||
echo " ⚙️ services.md - Service configurations"
|
||
echo " 🏠 current-deployment.md - Current deployment state"
|
||
echo " 📋 README.md - Documentation index"
|
||
echo
|
||
echo "💡 Tip: Add these files to your repository and set up GitHub Actions"
|
||
echo " to automatically regenerate documentation on changes!"
|
||
''
|