From ee17bbadfed47af24572919d143f260c9c57bb36 Mon Sep 17 00:00:00 2001 From: seth Date: Sun, 23 Apr 2023 02:27:01 -0400 Subject: feat: add nix flake --- flake.nix | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 flake.nix (limited to 'flake.nix') 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; + }; +} -- cgit v1.2.3