{ description = "Tool to build NixOS for GCP. "; nixConfig = { extra-substituters = [ "https://cuda-maintainers.cachix.org" ]; extra-trusted-public-keys = [ "cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E=" ]; }; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; nixos-generators = { url = "github:nix-community/nixos-generators"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, flake-utils, nixos-generators }@inputs: let gcp = nixos-generators.nixosGenerate { system = "x86_64-linux"; modules = [ ./gcp-configuration.nix ]; format = "vm"; pkgs = nixpkgs.legacyPackages.x86_64-linux; lib = nixpkgs.legacyPackages.x86_64-linux.lib; }; trainer = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ (import ./gcp-configuration.nix) ]; specialArgs = inputs; }; in flake-utils.lib.eachDefaultSystem (system: let pkgs = nixpkgs.legacyPackages.${system}; python = pkgs.python312.withPackages (ps: [ ps.click ]); in { packages.gcp = gcp; packages.nixosConfigurations.localhost = trainer; packages.nixosConfigurations.trainer-0001 = trainer; devShells.default = pkgs.mkShell { buildInputs = [ pkgs.google-cloud-sdk python ]; shellHook = '' export PROJECT_ID="all-dressed-programming" export BUCKET_NAME="nautilus-plus" ''; }; }); }