Files
appstore/apps/librechat/latest/scripts/init.sh
T

54 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}"
read_env_value() {
local key="$1"
[[ -f "$ENV_FILE" ]] || return 0
local value
value="$(sed -n "s/^${key}=//p" "$ENV_FILE" | tail -n 1)"
case "$value" in
\"*\") value="${value#\"}"; value="${value%\"}" ;;
\'*\') value="${value#\'}"; value="${value%\'}" ;;
esac
printf '%s\n' "$value"
}
configured_value() {
local key="$1"
local default_value="$2"
local value
value="${!key:-}"
if [[ -z "$value" ]]; then
value="$(read_env_value "$key")"
fi
printf '%s\n' "${value:-$default_value}"
}
resolve_app_path() {
local raw="$1"
if [[ "$raw" = /* ]]; then
printf '%s\n' "$raw"
else
printf '%s\n' "$ROOT_DIR/${raw#./}"
fi
}
DATA_DIR="$(resolve_app_path "$(configured_value APP_DATA_DIR ./data)")"
mkdir -p -- \
"${DATA_DIR}/images" \
"${DATA_DIR}/uploads" \
"${DATA_DIR}/logs" \
"${DATA_DIR}/skill" \
"${DATA_DIR}/mongodb" \
"${DATA_DIR}/meilisearch" \
"${DATA_DIR}/pgvector"
chown -R 1000:1000 -- \
"${DATA_DIR}/images" \
"${DATA_DIR}/uploads" \
"${DATA_DIR}/logs" \
"${DATA_DIR}/skill"