Files
x360-web-queue/xbox-paths.sh
T
2026-10-15 14:15:10 +02:00

56 lines
1.8 KiB
Bash

#!/bin/sh
# Shared POSIX shell helpers. Must be sourced from the project directory.
xbox_host_directory() {
if [ -n "${XBOX_HOST_DIR:-}" ]; then
root=$XBOX_HOST_DIR
elif [ -f .env ]; then
root=$(sed -n 's/^XBOX_HOST_DIR=//p' .env | tail -n 1)
# Handle normal quoted .env values without executing file contents.
case "$root" in
'"'*'"') root=${root#\"}; root=${root%\"} ;;
"'"*"'") root=${root#\'}; root=${root%\'} ;;
esac
root=${root:-/xbox}
else
root=/xbox
fi
case "$root" in
/*) ;;
*) echo "XBOX_HOST_DIR musi byc sciezka bezwzgledna: $root" >&2; return 1 ;;
esac
if [ ! -d "$root" ]; then
echo "Nie znaleziono $root na hoscie Linux." >&2
echo "Utworz go przed uruchomieniem, np.: sudo mkdir -p '$root'" >&2
echo "Jesli to montowany dysk, upewnij sie, ze jest zamontowany." >&2
return 1
fi
root=$(cd "$root" && pwd -P) || return 1
if [ "$root" = / ]; then
echo 'Odmowa uzycia / jako katalogu danych.' >&2
return 1
fi
printf '%s\n' "$root"
}
xbox_prepare_directories() {
root=$1
for rel in downloads work work/tmp work/cache ready imports logs metadata torrents bt aria2; do
if [ -L "$root/$rel" ]; then
echo "Odmowa uzycia dowiazania symbolicznego: $root/$rel" >&2
return 1
fi
if ! mkdir -p "$root/$rel"; then
echo "Brak uprawnien zapisu w $root. Ustaw prawa katalogu na hoscie." >&2
return 1
fi
done
if [ -L "$root/private" ]; then
echo "Odmowa uzycia dowiazania symbolicznego: $root/private" >&2
return 1
fi
if [ ! -d "$root/private" ]; then
mkdir -m 700 "$root/private" || return 1
fi
}