ci: Update pinned Nixpkgs (#376039)
[NixPkgs.git] / pkgs / by-name / su / sudachi-rs / package.nix
blob5200749808ef8003d22a9558da65d467939955d9
2   lib,
3   rustPlatform,
4   fetchFromGitHub,
5   sudachidict,
6   runCommand,
7   sudachi-rs,
8   writeScript,
9 }:
11 rustPlatform.buildRustPackage rec {
12   pname = "sudachi-rs";
13   version = "0.6.10";
15   src = fetchFromGitHub {
16     owner = "WorksApplications";
17     repo = "sudachi.rs";
18     tag = "v${version}";
19     hash = "sha256-2sJ9diE/EjrQmFcCc4VluE4Gu4RebTYitd7zzfgj3g4=";
20   };
22   postPatch = ''
23     substituteInPlace sudachi/src/config.rs \
24       --replace '"resources"' '"${placeholder "out"}/share/resources"'
25   '';
27   cargoHash = "sha256-fFvuxLOerqdjYogfTH3JiSlNPw2t7QT09lxp7prIpA8=";
29   # prepare the resources before the build so that the binary can find sudachidict
30   preBuild = ''
31     install -Dm644 ${sudachidict}/share/system.dic resources/system.dic
32     install -Dm644 resources/* -t $out/share/resources
33   '';
35   passthru = {
36     updateScript = writeScript "update.sh" ''
37       #!/usr/bin/env nix-shell
38       #!nix-shell -i bash -p nix-update
40       set -eu -o pipefail
41       nix-update sudachi-rs
42       nix-update --version=skip python3Packages.sudachipy
43     '';
44     tests = {
45       # detects an error that sudachidict is not found
46       cli = runCommand "${pname}-cli-test" { } ''
47         mkdir $out
48         echo "高輪ゲートウェイ駅" | ${lib.getExe sudachi-rs} > $out/result
49       '';
50     };
51   };
53   meta = with lib; {
54     description = "Japanese morphological analyzer";
55     homepage = "https://github.com/WorksApplications/sudachi.rs";
56     changelog = "https://github.com/WorksApplications/sudachi.rs/blob/${src.rev}/CHANGELOG.md";
57     license = licenses.asl20;
58     maintainers = with maintainers; [ natsukium ];
59     mainProgram = "sudachi";
60   };