You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
1.4 KiB
43 lines
1.4 KiB
#!/usr/bin/env bash |
|
# Drop Argos packages / MiniSBD files not in LT_LOAD_ONLY (default: scripts/libretranslate-lt.default.env). |
|
# Stops LibreTranslate briefly so files are not in use; uses Docker+Alpine to delete UID-1032-owned trees. |
|
set -euo pipefail |
|
ROOT="$(cd "$(dirname "$0")/.." && pwd)" |
|
ARGOS="$ROOT/.local-libretranslate/share/argos-translate" |
|
LT_DEFAULT_ENV="$ROOT/scripts/libretranslate-lt.default.env" |
|
if [[ -z "${LT_LOAD_ONLY:-}" ]]; then |
|
LT_LOAD_ONLY="$(grep -E '^[[:space:]]*LT_LOAD_ONLY=' "$LT_DEFAULT_ENV" | head -1 | sed 's/^[[:space:]]*LT_LOAD_ONLY=//')" |
|
fi |
|
|
|
if [[ ! -d "$ARGOS/packages" ]]; then |
|
echo "Nothing to prune (missing $ARGOS/packages)." >&2 |
|
exit 0 |
|
fi |
|
|
|
running="" |
|
for n in jumble-libretranslate imwald-libretranslate; do |
|
if docker inspect -f '{{.State.Running}}' "$n" &>/dev/null; then |
|
if [[ $(docker inspect -f '{{.State.Running}}' "$n") == "true" ]]; then |
|
running="$n" |
|
break |
|
fi |
|
fi |
|
done |
|
|
|
if [[ -n "$running" ]]; then |
|
echo "Stopping $running ..." |
|
docker stop "$running" >/dev/null |
|
fi |
|
|
|
docker run --rm \ |
|
-e LT_LOAD_ONLY="$LT_LOAD_ONLY" \ |
|
-e ARGOS_ROOT=/argos \ |
|
-v "$ARGOS:/argos:rw" \ |
|
-v "$ROOT/scripts/prune-libretranslate-packages.py:/prune.py:ro" \ |
|
alpine:3.20 \ |
|
sh -ec 'apk add --no-cache python3 >/dev/null && python3 /prune.py' |
|
|
|
if [[ -n "$running" ]]; then |
|
echo "Starting $running ..." |
|
docker start "$running" >/dev/null |
|
fi
|
|
|