aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Segundo2023-12-31 11:04:24 +0100
committerChristian Segundo2023-12-31 13:06:17 +0100
commit6e7734ff026b5be928703a4ad31ba4abaaf1535b (patch)
tree95d3f06ec93de075c002ba1dc1a316cbb367a03b
parentc5f325e580540d81903360920094aafcc6ad4008 (diff)
downloadlanguagetool-6e7734ff026b5be928703a4ad31ba4abaaf1535b.tar.gz
use fixed uid/gid6.3
misc bash fixes
-rw-r--r--Dockerfile29
-rw-r--r--misc/init.sh19
-rwxr-xr-xmisc/ngram.sh79
3 files changed, 66 insertions, 61 deletions
diff --git a/Dockerfile b/Dockerfile
index 9ad4fd5..32e0d53 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -4,21 +4,26 @@ ARG VERSION=6.3
WORKDIR /home/languagetool
-RUN adduser \
- --home /home/languagetool \
- --no-create-home languagetool
-
SHELL ["/bin/bash", "-eufo", "pipefail", "-c"]
# hadolint ignore=DL3008
-RUN apt-get update && \
- apt-get upgrade -y && \
- apt-get install --no-install-recommends -y \
- curl \
- libarchive-tools && \
- curl --progress-bar "https://languagetool.org/download/LanguageTool-$VERSION.zip" |\
- bsdtar -x -f - && \
- rm -rf /var/lib/apt/lists/*
+RUN \
+ groupadd -g 1000 languagetool && \
+ adduser \
+ --uid 1000 \
+ --gid 1000 \
+ --home /home/languagetool \
+ --no-create-home languagetool && \
+ chown -R languagetool:languagetool /home/languagetool && \
+ export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get upgrade -y && \
+ apt-get install --no-install-recommends -y \
+ curl \
+ libarchive-tools && \
+ curl --progress-bar "https://languagetool.org/download/LanguageTool-$VERSION.zip" |\
+ bsdtar -x -f - && \
+ rm -rf /var/lib/apt/lists/*
COPY --chown=languagetool misc/init.sh /
COPY --chown=languagetool misc/ngram.sh /
diff --git a/misc/init.sh b/misc/init.sh
index dc979c9..b8561f4 100644
--- a/misc/init.sh
+++ b/misc/init.sh
@@ -4,23 +4,24 @@ EXTRAOPTIONS=${EXTRAOPTIONS:-}
JAVAOPTIONS=${JAVAOPTIONS:-}
if [ -d "/ngrams" ]; then
- EXTRAOPTIONS="${EXTRAOPTIONS} --languageModel /ngrams"
- if [ ! -z ${NGRAM_LANGUAGES+x} ]; then
- bash /ngram.sh "${NGRAM_LANGUAGES}" "/ngrams"
- fi
+ EXTRAOPTIONS="${EXTRAOPTIONS} --languageModel /ngrams"
+ if [ -n "${NGRAM_LANGUAGES+x}" ]; then
+ bash /ngram.sh "${NGRAM_LANGUAGES}" "/ngrams"
+ fi
fi
for var in ${!LT_*}; do
- EXTRA_LT=true
- echo "${var#'LT_'}="${!var} >> /tmp/config.properties
+ EXTRA_LT=true
+ echo "${var#'LT_'}=${!var}" >>/tmp/config.properties
done
echo "JAVAOPTIONS=$JAVAOPTIONS"
if [ "$EXTRA_LT" = true ]; then
- EXTRAOPTIONS="${EXTRAOPTIONS} --config /tmp/config.properties"
- echo config.properties:
- cat /tmp/config.properties
+ EXTRAOPTIONS="${EXTRAOPTIONS} --config /tmp/config.properties"
+ echo config.properties:
+ cat /tmp/config.properties
fi
echo "EXTRAOPTIONS=$EXTRAOPTIONS"
+# shellcheck disable=SC2086
java ${JAVAOPTIONS} -cp languagetool-server.jar org.languagetool.server.HTTPServer --port 8010 --public --allow-origin '*' ${EXTRAOPTIONS}
diff --git a/misc/ngram.sh b/misc/ngram.sh
index 30c1671..6297aaa 100755
--- a/misc/ngram.sh
+++ b/misc/ngram.sh
@@ -2,58 +2,57 @@
set -euo pipefail
-NGRAM_DATA_URL="https://languagetool.org/download/ngram-data/"
-NGRAM_ARCHIVES=$(curl -sS "${NGRAM_DATA_URL}" | grep "\.zip" | grep -oP 'ngrams-\w\w-\d+\.zip' | sort | uniq)
+NGRAM_DATA_URL="https://languagetool.org/download/ngram-data"
+NGRAM_ARCHIVES=$(curl -sS "${NGRAM_DATA_URL}/" | grep "\.zip" | grep -oP 'ngrams-\w\w-\d+\.zip' | sort | uniq)
TARGET_LANGS="${1}"
TARGET_DIR="${2}"
download_ngram() {
- local lang=$1
- local version=$2
- local directory=$3
-
- echo "Downloading: ${lang} - ${version}"
- rm -rf "${directory:?}/${lang}"
- curl --progress-bar "${NGRAM_DATA_URL}ngrams-${lang}-${version}.zip" |\
- bsdtar -x -f - -C "${directory}"
+ local lang=$1
+ local version=$2
+ local directory=$3
+
+ echo "Downloading: ${lang} - ${version}"
+ rm -rf "${directory:?}/${lang}"
+ curl --progress-bar "${NGRAM_DATA_URL}/ngrams-${lang}-${version}.zip" |
+ bsdtar -x -f - -C "${directory}"
}
-
VERSION_FILE_CONTENT=
if test -f "${TARGET_DIR}/version"; then
- VERSION_FILE_CONTENT=$(cat "${TARGET_DIR}/version")
- >"${TARGET_DIR}/version"
+ VERSION_FILE_CONTENT=$(cat "${TARGET_DIR}/version")
+ cat /dev/null >"${TARGET_DIR}/version"
fi
while read -r ngram_archive; do
- for lang in ${TARGET_LANGS/,/ }; do
- if echo "$(echo ${ngram_archive} | cut -d'-' -f2)" | grep -q $lang; then
- version=$(echo ${ngram_archive} | cut -d'-' -f3 | cut -d'.' -f1)
- if echo "${VERSION_FILE_CONTENT}" | grep -q "$lang"; then
- existing_version=$(echo "${VERSION_FILE_CONTENT}" | grep "${lang}" | cut -d':' -f2)
- current_version=$(echo "${ngram_archive}" | cut -d'-' -f3 | cut -d'.' -f1)
- if [[ "${existing_version}" -lt "${current_version}" ]]; then
- download_ngram "${lang}" "${version}" "${TARGET_DIR}"
+ for lang in ${TARGET_LANGS/,/ }; do
+ if echo "${ngram_archive}" | cut -d'-' -f2 | grep -q "$lang"; then
+ version=$(echo "${ngram_archive}" | cut -d'-' -f3 | cut -d'.' -f1)
+ if echo "${VERSION_FILE_CONTENT}" | grep -q "$lang"; then
+ existing_version=$(echo "${VERSION_FILE_CONTENT}" | grep "${lang}" | cut -d':' -f2)
+ current_version=$(echo "${ngram_archive}" | cut -d'-' -f3 | cut -d'.' -f1)
+ if [[ "${existing_version}" -lt "${current_version}" ]]; then
+ download_ngram "${lang}" "${version}" "${TARGET_DIR}"
+ fi
+ else
+ download_ngram "${lang}" "${version}" "${TARGET_DIR}"
+ fi
+ echo "${lang}:${version}" >>"${TARGET_DIR}/version"
+ fi
+ done
+done <<<"${NGRAM_ARCHIVES}"
+
+for i in "${TARGET_DIR}"/*/; do
+ realdir="$(basename "${i}")"
+ delete=yes
+ for lang in ${TARGET_LANGS/,/ }; do
+ if echo "${realdir}" | grep -q "${lang}"; then
+ delete=no
+ fi
+ done
+ if [ "${delete}" == "yes" ]; then
+ rm -rf "${TARGET_DIR:?}/${realdir}"
fi
- else
- download_ngram "${lang}" "${version}" "${TARGET_DIR}"
- fi
- echo "${lang}:${version}" >> "${TARGET_DIR}/version"
- fi
- done
-done <<< "${NGRAM_ARCHIVES}"
-
-for i in $(ls -d "${TARGET_DIR}"/*/); do
- realdir="$(basename ${i})"
- delete=yes
- for lang in ${TARGET_LANGS/,/ }; do
- if echo "${realdir}" | grep -q "${lang}"; then
- delete=no
- fi
- done
- if [ "${delete}" == "yes" ]; then
- rm -rf "${TARGET_DIR:?}/${realdir}"
- fi
done