Files
jadb/nix/database.nix
T
oysteikt f0e919c397
Build and test / build (push) Successful in 5m44s
_data_ingestion: retrieve input paths from env
2026-06-08 14:07:53 +09:00

66 lines
1.3 KiB
Nix

{
lib,
stdenvNoCC,
src,
database-tool,
jmdict,
radkfile,
kanjidic2,
tanos-jlpt,
sqlite,
wal ? false,
}:
stdenvNoCC.mkDerivation {
name = "jadb";
inherit src;
nativeBuildInputs = [
database-tool
sqlite
];
env = {
JMDICT_PATH = "${jmdict}/JMdict.xml";
JMDICT_VERSION = jmdict.version;
JMDICT_DATE = jmdict.date;
JMDICT_HASH = jmdict.hash;
KANJIDIC_PATH = "${kanjidic2}/kanjidic2.xml";
KANJIDIC_VERSION = kanjidic2.version;
KANJIDIC_DATE = kanjidic2.date;
KANJIDIC_HASH = kanjidic2.hash;
RADKFILE_PATH = "${radkfile}/RADKFILE";
RADKFILE_VERSION = radkfile.version;
RADKFILE_DATE = radkfile.date;
RADKFILE_HASH = radkfile.hash;
TANOS_JLPT_PATH = toString tanos-jlpt;
TANOS_JLPT_VERSION = tanos-jlpt.version;
TANOS_JLPT_DATE = tanos-jlpt.date;
TANOS_JLPT_HASH = tanos-jlpt.hash;
};
buildPhase = ''
runHook preBuild
for migration in migrations/*.sql; do
sqlite3 jadb.sqlite < "$migration"
done
"${lib.getExe database-tool}" create-db \
${lib.optionalString wal "--wal"} \
--libsqlite "${sqlite.out}/lib/libsqlite3.so"
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm644 -t "$out" jadb.sqlite
runHook postInstall
'';
}