141 lines
4.0 KiB
Nix
141 lines
4.0 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "nixpkgs/nixos-unstable";
|
|
};
|
|
|
|
outputs = { self, nixpkgs }: let
|
|
inherit (nixpkgs) lib;
|
|
systems = [
|
|
"x86_64-linux"
|
|
"aarch64-linux"
|
|
"x86_64-darwin"
|
|
"aarch64-darwin"
|
|
"armv7l-linux"
|
|
];
|
|
|
|
forAllSystems = f: lib.genAttrs systems (system: f system nixpkgs.legacyPackages.${system});
|
|
in {
|
|
apps = forAllSystems (system: pkgs: let
|
|
wrapUpdateScript = name: path: {
|
|
type = "app";
|
|
meta.description = "A script to update the ${name} data";
|
|
program = let
|
|
drv = pkgs.writeShellApplication {
|
|
name = "update-${name}";
|
|
text = lib.readFile path;
|
|
runtimeInputs = lib.pipe path [
|
|
lib.readFile
|
|
(lib.splitString "\n")
|
|
(x: lib.elemAt x 1)
|
|
(lib.splitString " ")
|
|
(lib.drop 4) # "#!nix-shell -i bash -p"
|
|
(map (dep: pkgs.${dep}))
|
|
];
|
|
};
|
|
in lib.getExe drv;
|
|
};
|
|
in {
|
|
update-jmdict = wrapUpdateScript "jmdict" ./scripts/update-jmdict.sh;
|
|
update-kanjidic2 = wrapUpdateScript "kanjidic2" ./scripts/update-kanjidic2.sh;
|
|
update-radkfile = wrapUpdateScript "radkfile" ./scripts/update-radkfile.sh;
|
|
});
|
|
|
|
packages = let
|
|
edrdgMetadata = {
|
|
license = [{
|
|
shortName = "EDRDG";
|
|
fullName = "Electronic Dictionary Research and Development Group General Dictionary Licence";
|
|
url = "http://www.csse.monash.edu.au/~jwb/edrdg/licence.html";
|
|
}];
|
|
maintainers = [ lib.maintainers.h7x4 ];
|
|
platforms = lib.platforms.all;
|
|
};
|
|
in forAllSystems (system: pkgs: {
|
|
jmdict = pkgs.stdenvNoCC.mkDerivation {
|
|
pname = "jmdict";
|
|
version = lib.fileContents ./jmdict/version.txt;
|
|
|
|
dontUnpack = true;
|
|
dontBuild = true;
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm644 -t "$out" ${./jmdict/jmdict.xml}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = edrdgMetadata // {
|
|
description = "A Japanese-Multilingual Dictionary providing lexical data for japanese words";
|
|
homepage = "https://www.edrdg.org/jmdict/j_jmdict.html";
|
|
};
|
|
};
|
|
|
|
kanjidic2 = pkgs.stdenvNoCC.mkDerivation {
|
|
pname = "kanjidic2";
|
|
version = lib.fileContents ./kanjidic2/version.txt;
|
|
|
|
dontUnpack = true;
|
|
dontBuild = true;
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm644 -t "$out" ${./kanjidic2/kanjidic2.xml}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = edrdgMetadata // {
|
|
description = "A consolidated XML-format kanji database";
|
|
homepage = "https://www.edrdg.org/kanjidic/kanjd2index_legacy.html";
|
|
};
|
|
};
|
|
|
|
radkfile = pkgs.stdenvNoCC.mkDerivation {
|
|
pname = "radkfile";
|
|
version = lib.fileContents ./radkfile/version.txt;
|
|
|
|
dontUnpack = true;
|
|
dontBuild = true;
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm644 -t "$out" ${./radkfile/radkfile}
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = edrdgMetadata // {
|
|
description = "A file providing searchable decompositions of kanji characters";
|
|
homepage = "https://www.edrdg.org/krad/kradinf.html";
|
|
};
|
|
};
|
|
|
|
tanos-jlpt = pkgs.stdenvNoCC.mkDerivation {
|
|
pname = "tanos-jlpt";
|
|
version = "2011";
|
|
|
|
dontUnpack = true;
|
|
dontBuild = true;
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
for f in ${./tanos-jlpt}/*.csv; do
|
|
install -Dm644 -t "$out" "$f"
|
|
done
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = {
|
|
description = "A CSV file containing JLPT-rated Japanese vocabulary";
|
|
homepage = "https://www.tanos.co.uk/jlpt/";
|
|
license = lib.licenses.cc-by-40;
|
|
maintainers = [ lib.maintainers.h7x4 ];
|
|
platforms = lib.platforms.all;
|
|
};
|
|
};
|
|
});
|
|
};
|
|
}
|