depot/third_party/nixpkgs/pkgs/by-name/me/merge-ut-dictionaries/package.nix

90 lines
2.2 KiB
Nix

{
lib,
fetchFromGitHub,
stdenvNoCC,
nix-update-script,
python3,
jawiki-all-titles-in-ns0,
ibus-engines,
mozcdic-ut-jawiki,
mozcdic-ut-personal-names,
mozcdic-ut-place-names,
mozcdic-ut-sudachidict,
dictionaries ? [
mozcdic-ut-jawiki
mozcdic-ut-personal-names
mozcdic-ut-place-names
mozcdic-ut-sudachidict
],
}:
assert lib.assertMsg (dictionaries != [ ]) "merge-ut-dictionaries needs at least one dictionary.";
stdenvNoCC.mkDerivation {
pname = "merge-ut-dictionaries";
version = "0-unstable-2024-10-13";
src = fetchFromGitHub {
owner = "utuhiro78";
repo = "merge-ut-dictionaries";
rev = "4e08ad0bc0e493a35e9408edf963a3e77257b4cf";
hash = "sha256-o+4a2FdMfKnCrZ7b+gbVwCBxs72M0QY4C8EnNyBZqXU=";
};
nativeBuildInputs = [ python3 ];
preConfigure = ''
cd src
substituteInPlace make.sh \
--replace-fail "git" "true #" \
--replace-fail "mv mozcdic-ut" "#"
substituteInPlace count_word_hits.py \
--replace-fail 'subprocess.run' "#" \
--replace-fail "jawiki-latest-all-titles-in-ns0.gz" "${jawiki-all-titles-in-ns0}/jawiki-all-titles-in-ns0.gz"
substituteInPlace remove_duplicate_ut_entries.py \
--replace-fail "url =" 'url = "${ibus-engines.mozc.src}/src/data/dictionary_oss/id.def"#' \
--replace-fail "urllib.request.urlopen" "open" \
--replace-fail "read().decode()" "read()"
for dir in ${lib.concatStringsSep " " dictionaries}; do
cp -v $dir/mozcdic-ut-*.txt.tar.bz2 .
done
'';
buildPhase = ''
runHook preBuild
bash make.sh
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dt $out mozcdic-ut.txt
runHook postInstall
'';
passthru.updateScript = nix-update-script {
extraArgs = [
"--version"
"branch"
];
};
meta = {
description = "Mozc UT dictionaries are additional dictionaries for Mozc.";
homepage = "https://github.com/utuhiro78/merge-ut-dictionaries";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ pineapplehunter ];
platforms = lib.platforms.all;
# this does not need to be separately built
# it only provides a dictionary
hydraPlatforms = [ ];
};
}