summary refs log tree commit diff
path: root/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
blob: d760e9d320a6ef55dce60c01f2181dfe87b8a03b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{ stdenv, fetchurl, skktools }:

let
  # kana to kanji
  small = fetchurl {
    url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.S";
    sha256 = "15kp4iwz58fp1zg0i13x7w9wwm15v8n2hhm0nf2zsl7az5mn5yi4";
  };
  medium = fetchurl {
    url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.M";
    sha256 = "1vhagixhrp9lq5x7dldxcanhznawazp00xivpp1z52kx10lnkmv0";
  };
  large = fetchurl {
    url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.L";
    sha256 = "07cv0j95iajkr48j4ln411vnhl3z93yx96zjc03bgs10dbpagaaz";
  };

  # english to japanese
  edict = fetchurl {
    url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.edict";
    sha256 = "18k8z1wkgwgfwbs6sylf39h1nc1p5l2b00h7mfjlb8p91plkb45w";
  };
  # misc
  assoc = fetchurl {
    url = "https://raw.githubusercontent.com/skk-dev/dict/f61be71246602a49e9f05ded6ac4f9f82031a521/SKK-JISYO.assoc";
    sha256 = "12d6xpp1bfin9nwl35ydl5yc6vx0qpwhxss0khi19n1nsbyqnixm";
  };
in

stdenv.mkDerivation {
  pname = "skk-dicts-unstable";
  version = "2017-10-26";
  srcs = [ small medium large edict assoc ];
  nativeBuildInputs = [ skktools ];

  phases = [ "installPhase" ];
  installPhase = ''
    function dictname() {
      src=$1
      name=$(basename $src)          # remove dir name
      dict=$(echo $name | cut -b34-) # remove sha256 prefix
      echo $dict
    }
    mkdir -p $out/share

    for src in $srcs; do
      dst=$out/share/$(dictname $src)
      echo ";;; -*- coding: utf-8 -*-" > $dst  # libskk requires this on the first line
      iconv -f EUC-JP -t UTF-8 $src |\
        ${skktools}/bin/skkdic-expr2 >> $dst
    done

    # combine .L .edict and .assoc for convenience
    dst=$out/share/SKK-JISYO.combined
    echo ";;; -*- coding: utf-8 -*-" > $dst
    ${skktools}/bin/skkdic-expr2 \
      $out/share/$(dictname ${large}) + \
      $out/share/$(dictname ${edict}) + \
      $out/share/$(dictname ${assoc}) >> $dst
  '';

  meta = {
    description = "A collection of standard SKK dictionaries";
    longDescription = ''
      This package provides a collection of standard kana-to-kanji
      dictionaries for the SKK Japanese input method.
    '';
    homepage = "https://github.com/skk-dev/dict";
    license = stdenv.lib.licenses.gpl2Plus;
    maintainers = with stdenv.lib.maintainers; [ yuriaisaka ];
    platforms = with stdenv.lib.platforms; linux;
  };
}