mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-04-02 13:45:10 -05:00
93 lines
2.2 KiB
Bash
Executable File
93 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
# Source: https://github.com/sameersbn/docker-gitlab/
|
|
map_uidgid() {
|
|
USERMAP_ORIG_UID=$(id -u paperless)
|
|
USERMAP_ORIG_GID=$(id -g paperless)
|
|
USERMAP_NEW_UID=${USERMAP_UID:-$USERMAP_ORIG_UID}
|
|
USERMAP_NEW_GID=${USERMAP_GID:-${USERMAP_ORIG_GID:-$USERMAP_NEW_UID}}
|
|
if [[ ${USERMAP_NEW_UID} != "${USERMAP_ORIG_UID}" || ${USERMAP_NEW_GID} != "${USERMAP_ORIG_GID}" ]]; then
|
|
echo "Mapping UID and GID for paperless:paperless to $USERMAP_NEW_UID:$USERMAP_NEW_GID"
|
|
usermod -u "${USERMAP_NEW_UID}" paperless
|
|
groupmod -o -g "${USERMAP_NEW_GID}" paperless
|
|
fi
|
|
}
|
|
|
|
initialize() {
|
|
map_uidgid
|
|
|
|
for dir in export data data/index media media/documents media/documents/originals media/documents/thumbnails; do
|
|
if [[ ! -d "../$dir" ]]
|
|
then
|
|
echo "creating directory ../$dir"
|
|
mkdir ../$dir
|
|
fi
|
|
done
|
|
|
|
echo "creating directory /tmp/paperless"
|
|
mkdir -p /tmp/paperless
|
|
|
|
set +e
|
|
chown -R paperless:paperless ../
|
|
chown -R paperless:paperless /tmp/paperless
|
|
set -e
|
|
|
|
gosu paperless /sbin/docker-prepare.sh
|
|
}
|
|
|
|
install_languages() {
|
|
echo "Installing languages..."
|
|
|
|
local langs="$1"
|
|
read -ra langs <<<"$langs"
|
|
|
|
# Check that it is not empty
|
|
if [ ${#langs[@]} -eq 0 ]; then
|
|
return
|
|
fi
|
|
apt-get update
|
|
|
|
for lang in "${langs[@]}"; do
|
|
pkg="tesseract-ocr-$lang"
|
|
# English is installed by default
|
|
#if [[ "$lang" == "eng" ]]; then
|
|
# continue
|
|
#fi
|
|
|
|
if dpkg -s $pkg &> /dev/null; then
|
|
echo "package $pkg already installed!"
|
|
continue
|
|
fi
|
|
|
|
if ! apt-cache show $pkg &> /dev/null; then
|
|
echo "package $pkg not found! :("
|
|
continue
|
|
fi
|
|
|
|
echo "Installing package $pkg..."
|
|
if ! apt-get -y install "$pkg" &> /dev/null; then
|
|
echo "Could not install $pkg"
|
|
exit 1
|
|
fi
|
|
done
|
|
}
|
|
|
|
echo "Paperless-ng docker container starting..."
|
|
|
|
# Install additional languages if specified
|
|
if [[ ! -z "$PAPERLESS_OCR_LANGUAGES" ]]; then
|
|
install_languages "$PAPERLESS_OCR_LANGUAGES"
|
|
fi
|
|
|
|
initialize
|
|
|
|
if [[ "$1" != "/"* ]]; then
|
|
echo Executing management command "$@"
|
|
exec gosu paperless python3 manage.py "$@"
|
|
else
|
|
echo Executing "$@"
|
|
exec "$@"
|
|
fi
|