tesseract-langs.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #! /bin/sh
  2. # Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
  3. # Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
  4. PV='3.02'
  5. # Sometimes the software package has a minor version, but language
  6. # packages have not. Example:
  7. # software package: tesseract-ocr-3.02.02.tar.gz
  8. # language package: tesseract-ocr-3.02.por.tar.gz
  9. MINOR_PV=02
  10. recipes_dir=$1
  11. usage() {
  12. echo "Usage: `basename $0` <recipes dir> [ <download dir> ]"
  13. }
  14. if [ -z "$recipes_dir" ]; then
  15. usage
  16. exit 1
  17. fi
  18. mkdir -p "$recipes_dir"
  19. file_list_uri='https://code.google.com/p/tesseract-ocr/downloads/list'
  20. file_list=`mktemp`
  21. remove_dl_dir=
  22. if [ -z "$2" ]; then
  23. remove_dl_dir=1
  24. dl_dir=`mktemp -d`
  25. else
  26. dl_dir="$2"
  27. fi
  28. mkdir -p $dl_dir
  29. tesseract_langs() {
  30. wget -q -O "$file_list" "$file_list_uri"
  31. grep -E 'a href="detail\?name=tesseract-ocr-'${PV}'\.[^\.]+.tar.gz&amp;can=2&amp;q=">' "$file_list" | \
  32. sed -r -e 's/.*tesseract-ocr-'${PV}'\.*([^\.]+)\.tar\.gz.*/\1/' | \
  33. grep -Ev '('${MINOR_PV}'|'${MINOR_PV}'-doc-html)' | \
  34. sort -u
  35. }
  36. download_lang_files() {
  37. local langs="$1"
  38. local uri
  39. for lang in $langs; do
  40. if [ ! -e "$dl_dir/tesseract-ocr-${PV}.${lang}.tar.gz" ]; then
  41. uri="https://tesseract-ocr.googlecode.com/files/tesseract-ocr-${PV}.${lang}.tar.gz"
  42. echo "Downloading $uri"
  43. wget -q -P "$dl_dir" "$uri"
  44. fi
  45. done
  46. }
  47. create_recipe() {
  48. local lang=$1
  49. local tarball
  50. tarball="$dl_dir/tesseract-ocr-${PV}.${lang}.tar.gz"
  51. md5sum=`md5sum $tarball | awk '{print $1}'`
  52. sha256sum=`sha256sum $tarball | awk '{print $1}'`
  53. cat > $recipes_dir/tesseract-lang-`echo ${lang} | sed s/_/-/g`_${PV}.bb <<EOF
  54. # Copyright (C) 2014, O.S. Systems Software Ltda. All Rights Reserved
  55. # Released under the MIT license (see meta-openembedded layer's COPYING.MIT)
  56. TESSERACT_LANG = "$lang"
  57. require tesseract-lang.inc
  58. SRC_URI[md5sum] = "${md5sum}"
  59. SRC_URI[sha256sum] = "${sha256sum}"
  60. EOF
  61. }
  62. LANGS=`tesseract_langs`
  63. download_lang_files "$LANGS"
  64. for lang in $LANGS; do
  65. create_recipe $lang
  66. done
  67. [ -n "$remove_dl_dir" ] && rm -rf $dl_dir
  68. rm -f $file_list