Files
hassio-addons/zzz_archived_papermerge/rootfs/etc/cont-init.d/91-OCR.sh
2025-06-10 12:32:46 +02:00

60 lines
2.3 KiB
Bash

#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
set -e
# Allow OCR setting
OCRLANG="$(bashio::config "ocrlang")"
#Define location place
CONFIGLOCATION="$(bashio::config "CONFIG_LOCATION")"
#If it's a file, get the folder
if [ ! -d "$CONFIGLOCATION" ]; then
CONFIGLOCATION="$(dirname "$CONFIGLOCATION")"
fi
#Correct previous bug
sed -i "s|OCRLANG|OCR_LANGUAGES|g" "$CONFIGLOCATION"/papermerge.conf.py
languageCount=$(echo "$OCRLANG" | tr -cd ',' | wc -c)
languageCount=$((languageCount + 1))
bashio::log.info "Configuring ${languageCount} languages"
if [ -n "$OCRLANG" ]; then
lineStart=$(sed -n '/OCR_LANGUAGES/=' "$CONFIGLOCATION"/papermerge.conf.py)
bashio::log.info "OCRLANG variable is set, processing the language packages"
lineEnd=$(sed -n '/}/=' "$CONFIGLOCATION"/papermerge.conf.py)
sed -i "${lineStart},${lineEnd}d" "$CONFIGLOCATION"/papermerge.conf.py || true
bashio::log.info "Writing new configuration"
echo "OCR_LANGUAGES = {" >>"$CONFIGLOCATION"/papermerge.conf.py
languages=$(echo "$OCRLANG" | tr "," "\n")
apt-get update >/dev/null
i=0
for language in $languages; do
bashio::log.info "Processing language ${language}"
if apt-cache show tesseract-ocr-"${language}" >/dev/null 2>&1; then
bashio::log.info "Installing tesseract-ocr-${language}"
apt-get install -yqq tesseract-ocr-"${language}" >/dev/null
languageFullName=$(apt-cache show tesseract-ocr-"${language}" | grep -E '^(Description|Description-en):' | grep -oE '[^ ]+$')
bashio::log.info "${language} identified as ${languageFullName}"
i=$((i + 1))
if [[ $i -eq $languageCount ]]; then
echo " \"$language\" : \"$languageFullName\"" >>"$CONFIGLOCATION"/papermerge.conf.py
elif [[ $i -eq 1 ]]; then
echo " \"$language\" : \"$languageFullName\"," >>"$CONFIGLOCATION"/papermerge.conf.py
bashio::log.info "Setting default language to ${language}"
sed -i "s/^OCR_DEFAULT_LANGUAGE = \"eng\"/OCR_DEFAULT_LANGUAGE = \"${language}\"/g" "$CONFIGLOCATION"/papermerge.conf.py
else
echo " \"$language\" : \"$languageFullName\"," >>"$CONFIGLOCATION"/papermerge.conf.py
fi
bashio::log.info "... ${language} installed"
else
bashio::log.info "Package tesseract-ocr-${language} not found in the repository, skipping"
fi
done
echo "}" >>"$CONFIGLOCATION"/papermerge.conf.py
fi