{ description = "USDA Vision camera management system"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; outputs = { self, nixpkgs, flake-utils }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; # Import our package definition usda-vision-package = pkgs.callPackage ./package.nix { }; camera-sdk = pkgs.callPackage ./camera-sdk.nix { }; in { packages = { default = usda-vision-package; usda-vision = usda-vision-package; camera-sdk = camera-sdk; }; devShells.default = pkgs.mkShell { name = "usda-vision-dev"; # Input packages for the development shell buildInputs = with pkgs; [ # Core development tools git vim curl wget # Docker for local development docker docker-compose # Supabase CLI supabase-cli # Node.js for web app development nodejs_20 nodePackages.npm nodePackages.pnpm # Python for camera API python311 python311Packages.pip python311Packages.virtualenv # Camera SDK camera-sdk # Utilities jq yq rsync gnused gawk ]; # Environment variables for development shellHook = '' export LD_LIBRARY_PATH="${camera-sdk}/lib:$LD_LIBRARY_PATH" export CAMERA_SDK_PATH="${camera-sdk}" # Set up Python virtual environment if [ ! -d .venv ]; then echo "Creating Python virtual environment..." python -m venv .venv fi echo "USDA Vision Development Environment" echo "====================================" echo "Camera SDK: ${camera-sdk}" echo "" echo "Available commands:" echo " - docker-compose: Manage containers" echo " - supabase: Supabase CLI" echo "" echo "To activate Python venv: source .venv/bin/activate" echo "To edit secrets: ragenix -e secrets/env.age" echo "" echo "NOTE: Secrets should be managed by ragenix in athenix for production deployments" echo "" ''; # Additional environment configuration DOCKER_BUILDKIT = "1"; COMPOSE_DOCKER_CLI_BUILD = "1"; }; } ); }