Files
appstore/apps/miniserve/latest/scripts/init.sh
T
okxlin 5bff96d267 Add miniserve app
Package the official read-only file server for latest and 0.35.0 with generated access credentials, a read-only host mount, and strict multilingual metadata.
2026-07-28 16:35:53 +08:00

46 lines
955 B
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
}
ensure_dir() {
local path
path="$(resolve_app_path "$(configured_value "$1" "$2")")"
mkdir -p "$path"
}
ensure_dir "MOUNT_PATH" "./data"