43 lines
1.3 KiB
Nix
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; };
|
|
}
|