{ npins ? import ./npins, nixpkgs ? npins.nixpkgs, pkgs ? import nixpkgs { }, lib ? pkgs.lib, ... }: lib.makeScope pkgs.newScope ( self: let addProtobuf = oldAttrs: { nativeBuildInputs = oldAttrs.nativeBuildInputs or [ ] ++ [ (self.callPackage ({ protobuf }: protobuf) { }) ]; }; in { sidx-crate2nix = ( self.callPackage ./Cargo.nix { defaultCrateOverrides = pkgs.defaultCrateOverrides // { sidx = oldAttrs: { src = let fs = pkgs.lib.fileset; in fs.toSource { root = ./.; fileset = fs.unions [ ./src ./Cargo.toml ./Cargo.lock ]; }; }; snix-castore = addProtobuf; # prost-wkt-types = addProtobuf; # openssl-sys = oldAttrs: { # nativeBuildInputs = oldAttrs.buildInputs or [ ] ++ [ # (self.callPackage ({ pkg-config }: pkg-config) { }) # ]; # buildInputs = oldAttrs.buildInputs or [ ] ++ [ # (self.callPackage ({ openssl }: openssl) { }) # ]; # }; }; } ); sidx = self.sidx-crate2nix.rootCrate.build; datasette-wrapped = self.callPackage ( { datasette, datasette-metadata, makeWrapper, runCommand, }: runCommand "datasettew" { nativeBuildInputs = [ makeWrapper ]; } '' mkdir -p "$out/bin" makeWrapper ${lib.getExe datasette} "$out/bin/datasettew" \ --add-flags --metadata=${datasette-metadata} '' ) { }; datasette-metadata = self.callPackage ( { formats }: (formats.json { }).generate "datasette-metadata.json" { "databases" = { "sidx" = { "tables" = { "Hash" = { "label_column" = "hash"; }; }; }; }; } ) { }; } )