Files
nixos-on-gcp/flake.nix
T
2024-10-28 04:59:53 -04:00

45 lines
1.4 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 {
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"
'';
};
});
}