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

#!/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