at 18.03-beta 105 lines 3.1 kB view raw
1{stdenv, fetchFromGitHub, unzip, zip, perl, aspell, dos2unix, singleWordlist ? null}: 2stdenv.mkDerivation rec { 3 name = "${pname}-${version}"; 4 pname = "scowl"; 5 version = "2017.08.24"; 6 7 src = fetchFromGitHub { 8 owner = "en-wl"; 9 repo = "wordlist"; 10 rev = "rel-${version}"; 11 sha256 = "16mgk6scbw8i38g63kh60bsnzgzfs8gvvz2n5jh4x5didbwly8nz"; 12 }; 13 14 buildInputs = []; 15 nativeBuildInputs = [unzip zip perl aspell dos2unix]; 16 17 NIX_CFLAGS_COMPILE = " -Wno-narrowing "; 18 19 preConfigure = '' 20 patchShebangs . 21 export PERL5LIB="$PERL5LIB''${PERL5LIB:+:}$PWD/varcon" 22 ''; 23 24 postBuild = stdenv.lib.optionalString (singleWordlist == null) '' 25 ( 26 cd scowl/speller 27 make aspell 28 make hunspell 29 ) 30 ''; 31 32 enableParallelBuilding = false; 33 34 installPhase = if singleWordlist == null then '' 35 eval "$preInstall" 36 37 mkdir -p "$out/share/scowl" 38 mkdir -p "$out/lib" "$out/share/hunspell" "$out/share/myspell" 39 mkdir -p "$out/share/dict" 40 41 cp -r scowl/speller/aspell "$out/lib/aspell" 42 cp scowl/speller/*.{aff,dic} "$out/share/hunspell" 43 ln -s "$out/share/hunspell" "$out/share/myspell/dicts" 44 45 cp scowl/final/* "$out/share/scowl" 46 47 ( 48 cd scowl 49 for region in american british british_s british_z canadian australian; do 50 case $region in 51 american) 52 regcode=en-us; 53 ;; 54 british) 55 regcode=en-gb-ise; 56 ;; 57 british_s) 58 regcode=en-gb-ise; 59 ;; 60 british_z) 61 regcode=en-gb-ize; 62 ;; 63 canadian) 64 regcode=en-ca; 65 ;; 66 australian) 67 regcode=en-au; 68 ;; 69 esac 70 regcode_var="$regcode" 71 if test "$region" = british; then 72 regcode_var="en-gb" 73 fi 74 75 echo $region $regcode $regcode_sz 76 for s in 10 20 30 35 40 50 55 60 70 80 90 95; do 77 ./mk-list $regcode $s > "$out/share/dict/w$region.$s" 78 ./mk-list --variants=1 $regcode_var $s > "$out/share/dict/w$region.variants.$s" 79 ./mk-list --variants=2 $regcode_var $s > "$out/share/dict/w$region.acceptable.$s" 80 done 81 ./mk-list $regcode 60 > "$out/share/dict/w$region.txt" 82 ./mk-list --variants=1 $regcode_var 60 > "$out/share/dict/w$region.variants.txt" 83 ./mk-list --variants=2 $regcode_var 80 > "$out/share/dict/w$region.scrabble.txt" 84 done 85 ./mk-list --variants=1 en-gb 60 > "$out/share/dict/words.variants.txt" 86 ./mk-list --variants=1 en-gb 80 > "$out/share/dict/words.scrabble.txt" 87 ./mk-list en-gb-ise 60 > "$out/share/dict/words.txt" 88 ) 89 90 eval "$postInstall" 91 '' else '' 92 mkdir -p "$out/share/dict" 93 cd scowl 94 ./mk-list ${singleWordlist} > "$out/share/dict/words.txt" 95 ''; 96 97 meta = { 98 inherit version; 99 description = "Spell checker oriented word lists"; 100 license = stdenv.lib.licenses.mit; 101 maintainers = [stdenv.lib.maintainers.raskin]; 102 platforms = stdenv.lib.platforms.unix; 103 homepage = "http://wordlist.aspell.net/"; 104 }; 105}