Files
2024-10-30 08:11:33 -04:00

53 lines
1.6 KiB
Nix

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