78 lines
2.1 KiB
Bash
Executable File
78 lines
2.1 KiB
Bash
Executable File
#!/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 ""
|