#!/usr/bin/env bash # Quick setup script for USDA Vision development set -e echo "======================================" echo "USDA Vision - Quick Setup" echo "======================================" echo "" # Check if we're in the right directory if [ ! -f "flake.nix" ]; then echo "❌ Error: Must run from usda-vision directory" echo " cd to the directory containing flake.nix" exit 1 fi # Check for age key if [ ! -f "$HOME/.config/age/keys.txt" ]; then echo "📝 No age key found at ~/.config/age/keys.txt" echo "" read -p "Would you like to generate one? (y/n) " -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then mkdir -p "$HOME/.config/age" age-keygen -o "$HOME/.config/age/keys.txt" echo "✅ Age key generated!" echo "" else echo "❌ Cannot proceed without an age key" exit 1 fi fi # Get public key AGE_PUBLIC_KEY=$(grep "public key:" "$HOME/.config/age/keys.txt" | cut -d: -f2 | xargs) echo "Your age public key is:" echo " $AGE_PUBLIC_KEY" echo "" # Check if key is already in secrets.nix if grep -q "$AGE_PUBLIC_KEY" secrets/secrets.nix 2>/dev/null; then echo "✅ Your key is already in secrets/secrets.nix" else echo "⚠️ Your key is NOT in secrets/secrets.nix" echo "" read -p "Would you like to add it now? (y/n) " -n 1 -r echo "" if [[ $REPLY =~ ^[Yy]$ ]]; then # Backup original cp secrets/secrets.nix secrets/secrets.nix.backup # Add the key sed -i "/publicKeys = \[/a\ \"$AGE_PUBLIC_KEY\"" secrets/secrets.nix echo "✅ Key added to secrets/secrets.nix" echo "" fi fi echo "======================================" echo "Setup complete! Next steps:" echo "======================================" echo "" echo "1. Enter development environment:" echo " $ nix develop" echo "" echo "2. Create/edit encrypted secrets:" echo " $ ragenix -e secrets/env.age" echo " $ ragenix -e secrets/env.azure.age" echo "" echo "3. Start development:" echo " $ docker-compose up -d" echo "" echo "For more information, see FLAKE_SETUP.md" echo ""