app/shell.nix

97 lines
2.6 KiB
Nix
Raw Normal View History

2025-12-27 17:30:07 +01:00
{ pkgs ? import <nixpkgs> {} }:
pkgs.mkShell {
buildInputs = with pkgs; [
# PHP and tools
php83
php83Packages.composer
# Node.js and npm
nodejs_20
# Container tools
podman
podman-compose
# Database client (optional, for direct DB access)
mariadb-client
# Utilities
git
curl
gnumake
];
shellHook = ''
# Define helper functions
rebuild() {
echo "🔨 Rebuilding development environment..."
podman-compose down -v
podman-compose build --no-cache app
podman-compose up -d
echo " Rebuild complete! Check logs with: podman-compose logs -f app"
}
rebuild-quick() {
echo " Quick rebuild (keeping volumes)..."
podman-compose down
podman-compose build app
podman-compose up -d
echo " Quick rebuild complete!"
}
logs() {
podman-compose logs -f "$@"
}
shell() {
podman-compose exec app sh
}
artisan() {
podman-compose exec app php artisan "$@"
}
echo "🚀 Dish Planner Development Environment"
echo "======================================="
echo "PHP: $(php --version | head -n1)"
echo "Node: $(node --version)"
echo "Podman: $(podman --version)"
echo "Podman-compose: $(podman-compose --version 2>/dev/null || echo 'checking...')"
echo ""
echo "Quick commands:"
echo " rebuild - Full rebuild (removes volumes)"
echo " rebuild-quick - Quick rebuild (keeps volumes)"
echo " logs [service] - Follow logs (default: all)"
echo " shell - Enter app container"
echo " artisan [cmd] - Run artisan commands"
echo ""
echo "Standard commands:"
echo " podman-compose up -d - Start containers"
echo " podman-compose down - Stop containers"
echo " make dev - Start via Makefile"
echo ""
# Auto-start prompt
if [ -f "docker-compose.yml" ]; then
read -p "Start development containers? (y/N) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo "Starting containers..."
podman-compose up -d
# Wait a moment for containers to start
sleep 3
echo ""
echo " Services should be available at:"
echo " App: http://localhost:8000"
echo " Vite: http://localhost:5173"
echo " Mailhog: http://localhost:8025"
echo " MariaDB: localhost:3306"
echo ""
echo "Run 'podman-compose logs -f app' to follow logs"
fi
fi
'';
}