Files
nixos-on-gcp/flake.nix
T
2024-10-27 09:21:31 -04:00

43 lines
1.3 KiB
Nix

{
description = "Tool to build NixOS for GCP. ";
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 {
modules = [ (import ./gcp-configuration.nix) ];
specialArgs = inputs;
};
utils = flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
python = pkgs.python312.withPackages (ps: [ ps.click ]);
in {
packages.gcp = gcp;
devShells.default = pkgs.mkShell {
buildInputs = [ pkgs.google-cloud-sdk python ];
shellHook = ''
export PROJECT_ID="all-dressed-programming"
export BUCKET_NAME="nautilus-plus"
'';
};
});
in utils // { trainer-001 = trainer; };
}