summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2015-05-22 07:45:59 +0200
committeraszlig <aszlig@redmoonstudios.org>2015-05-22 07:45:59 +0200
commitadb7581459f1351272e9a220723aa9f9db29963c (patch)
tree22d90c2ae0798997fac10bf327e7168b41749a6b /pkgs/applications
parent8be00dc71dbe409447feddc42d26bdfaf38703a4 (diff)
downloadnixlib-adb7581459f1351272e9a220723aa9f9db29963c.tar
nixlib-adb7581459f1351272e9a220723aa9f9db29963c.tar.gz
nixlib-adb7581459f1351272e9a220723aa9f9db29963c.tar.bz2
nixlib-adb7581459f1351272e9a220723aa9f9db29963c.tar.lz
nixlib-adb7581459f1351272e9a220723aa9f9db29963c.tar.xz
nixlib-adb7581459f1351272e9a220723aa9f9db29963c.tar.zst
nixlib-adb7581459f1351272e9a220723aa9f9db29963c.zip
tesseract: Allow to specify a subset of languages.
Especially useful for our OCR based VM tests, where we only need the
english language. By default the argument is null so all languages are
included. If a list of language name is passed only those languages are
enabled, for example:

tesseract.override { enableLanguages = [ "eng" "spa" ]; };

To only enable support for English and Spanish languages.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/graphics/tesseract/default.nix43
1 files changed, 24 insertions, 19 deletions
diff --git a/pkgs/applications/graphics/tesseract/default.nix b/pkgs/applications/graphics/tesseract/default.nix
index 83aff09e2aae..f20c868d4a0a 100644
--- a/pkgs/applications/graphics/tesseract/default.nix
+++ b/pkgs/applications/graphics/tesseract/default.nix
@@ -1,26 +1,31 @@
-{ stdenv, fetchurl, autoconf, automake, libtool, leptonica, libpng, libtiff }:
+{ stdenv, fetchurl, autoconf, automake, libtool, leptonica, libpng, libtiff
+, enableLanguages ? null
+}:
+
+with stdenv.lib;
 
 let
   majVersion = "3.02";
   version = "${majVersion}.02";
 
-  f = lang : sha256 : let
-      src = fetchurl {
-        url = "http://tesseract-ocr.googlecode.com/files/tesseract-ocr-${majVersion}.${lang}.tar.gz";
-        inherit sha256;
-      };
-    in
-      "tar xfvz ${src} -C $out/share/ --strip=1";
-
-  extraLanguages = ''
-    ${f "cat" "0d1smiv1b3k9ay2s05sl7q08mb3ln4w5iiiymv2cs8g8333z8jl9"}
-    ${f "rus" "059336mkhsj9m3hwfb818xjlxkcdpy7wfgr62qwz65cx914xl709"}
-    ${f "spa" "1c9iza5mbahd9pa7znnq8yv09v5kz3gbd2sarcgcgc1ps1jc437l"}
-    ${f "nld" "162acxp1yb6gyki2is3ay2msalmfcsnrlsd9wml2ja05k94m6bjy"}
-    ${f "eng" "1y5xf794n832s3lymzlsdm2s9nlrd2v27jjjp0fd9xp7c2ah4461"}
-    ${f "slv" "0rqng43435cly32idxm1lvxkcippvc3xpxbfizwq5j0155ym00dr"}
-    ${f "jpn" "07v8pymd0iwyzh946lxylybda20gsw7p4fsb09jw147955x49gq9"}
-  '';
+  mkLang = lang: sha256: let
+    src = fetchurl {
+      url = "http://tesseract-ocr.googlecode.com/files/tesseract-ocr-${majVersion}.${lang}.tar.gz";
+      inherit sha256;
+    };
+  in "tar xfvz ${src} -C $out/share/ --strip=1";
+
+  wantLang = name: const (enableLanguages == null || elem name enableLanguages);
+
+  extraLanguages = mapAttrsToList mkLang (filterAttrs wantLang {
+    cat = "0d1smiv1b3k9ay2s05sl7q08mb3ln4w5iiiymv2cs8g8333z8jl9";
+    rus = "059336mkhsj9m3hwfb818xjlxkcdpy7wfgr62qwz65cx914xl709";
+    spa = "1c9iza5mbahd9pa7znnq8yv09v5kz3gbd2sarcgcgc1ps1jc437l";
+    nld = "162acxp1yb6gyki2is3ay2msalmfcsnrlsd9wml2ja05k94m6bjy";
+    eng = "1y5xf794n832s3lymzlsdm2s9nlrd2v27jjjp0fd9xp7c2ah4461";
+    slv = "0rqng43435cly32idxm1lvxkcippvc3xpxbfizwq5j0155ym00dr";
+    jpn = "07v8pymd0iwyzh946lxylybda20gsw7p4fsb09jw147955x49gq9";
+  });
 in
 
 stdenv.mkDerivation rec {
@@ -40,7 +45,7 @@ stdenv.mkDerivation rec {
                   'LIBLEPT_HEADERSDIR=${leptonica}/include'
   '';
 
-  postInstall = extraLanguages;
+  postInstall = concatStrings extraLanguages;
 
   meta = {
     description = "OCR engine";