79 lines
2 KiB
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";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
}
|
|
) { };
|
|
}
|
|
)
|