summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix59
1 files changed, 59 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..5d9942c
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,59 @@
+{
+ description = "silly little api";
+
+ inputs.nixpkgs.url = "nixpkgs/nixos-unstable";
+
+ outputs = {
+ self,
+ nixpkgs,
+ }: let
+ version = self.lastModifiedDate;
+
+ systems = [
+ "x86_64-linux"
+ "aarch64-linux"
+ "x86_64-darwin"
+ "aarch64-darwin"
+ ];
+
+ forAllSystems = nixpkgs.lib.genAttrs systems;
+ nixpkgsFor = forAllSystems (system:
+ import nixpkgs {
+ inherit system;
+ overlays = [self.overlays.default];
+ });
+
+ packageFn = pkgs: let
+ inherit (pkgs) callPackage;
+ in {
+ guzzle-api = callPackage ./nix {inherit version;};
+ guzzle-api-server = callPackage ./nix/server.nix {};
+ };
+ in {
+ devShells = forAllSystems (system: let
+ pkgs = nixpkgsFor.${system};
+ inherit (pkgs) mkShell;
+ in {
+ default = mkShell {
+ packages = with pkgs.python311Packages; [
+ python
+ fastapi
+ httpx
+ pydantic
+ pylint
+ toml
+ uvicorn
+ yapf
+ ];
+ };
+ });
+
+ nixosModules.guzzle_api = import ./nix/module.nix;
+
+ packages = forAllSystems (system: let
+ pkgs = nixpkgsFor.${system};
+ in {inherit (pkgs) guzzle-api guzzle-api-server;});
+
+ overlays.default = final: _: packageFn final;
+ };
+}