sidx/default.nix

79 lines
2 KiB
Nix

{
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";
};
};
};
};
}
) { };
}
)