diff --git a/build.nix b/build.nix new file mode 100644 index 00000000..6ed9aa83 --- /dev/null +++ b/build.nix @@ -0,0 +1,15 @@ +{ pkgs, dendrite }: + +with pkgs; +{ + main = buildGoModule { + name = "nix-matrix-pinecone"; + + src = dendrite; + + vendorSha256 = "sha256-Fs28HlNxyz/oU2FRxw7QV0xkN7VKgoZ6bYUx0HWHSP8="; + subPackages = [ "cmd/dendrite-demo-pinecone" ]; + }; + + test = pkgs.nixosTest ./test.nix; +} diff --git a/default.nix b/default.nix index 6ed9aa83..873ece49 100644 --- a/default.nix +++ b/default.nix @@ -1,15 +1,13 @@ -{ pkgs, dendrite }: - -with pkgs; -{ - main = buildGoModule { - name = "nix-matrix-pinecone"; - - src = dendrite; - - vendorSha256 = "sha256-Fs28HlNxyz/oU2FRxw7QV0xkN7VKgoZ6bYUx0HWHSP8="; - subPackages = [ "cmd/dendrite-demo-pinecone" ]; - }; - - test = pkgs.nixosTest ./test.nix; -} +(import + ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + in + fetchTarball { + url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; + sha256 = lock.nodes.flake-compat.locked.narHash; + } + ) + { + src = ./.; + }).defaultNix diff --git a/flake.lock b/flake.lock index 7396a758..44c9c737 100644 --- a/flake.lock +++ b/flake.lock @@ -16,6 +16,22 @@ "type": "github" } }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1606424373, + "narHash": "sha256-oq8d4//CJOrVj+EcOaSXvMebvuTkmBJuT5tzlfewUnQ=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "99f1c2157fba4bfe6211a321fd0ee43199025dbf", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1622445595, @@ -48,6 +64,7 @@ "root": { "inputs": { "dendrite": "dendrite", + "flake-compat": "flake-compat", "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } diff --git a/flake.nix b/flake.nix index e8f17a15..f99ce70c 100644 --- a/flake.nix +++ b/flake.nix @@ -7,14 +7,18 @@ url = "github:matrix-org/dendrite"; flake = false; }; + flake-compat = { + url = "github:edolstra/flake-compat"; + flake = false; + }; }; - outputs = { self, nixpkgs, flake-utils, dendrite }: + outputs = { self, nixpkgs, flake-utils, dendrite, flake-compat }: flake-utils.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; in { - defaultPackage = (import ./default.nix { inherit pkgs dendrite; }).main; + defaultPackage = (import ./build.nix { inherit pkgs dendrite; }).main; devShell = import ./shell.nix { inherit pkgs; }; } );