Files
BackOne/pkg/common/platform-paths.sh
2026-07-02 09:12:57 +07:00

84 lines
2.2 KiB
Bash

# Shared BackOne install paths for addon packaging scripts.
# Source this file; do not execute directly.
_backone_detect_platform() {
if [ -n "${BACKONE_PLATFORM:-}" ]; then
return 0
fi
case "$(uname -s 2>/dev/null)" in
Darwin) BACKONE_PLATFORM=mac ;;
Linux) BACKONE_PLATFORM=linux ;;
MINGW*|MSYS*|CYGWIN*) BACKONE_PLATFORM=windows ;;
*) BACKONE_PLATFORM=linux ;;
esac
}
_backone_default_home() {
case "${BACKONE_PLATFORM}" in
mac) printf '%s\n' "/Library/Application Support/BackOne" ;;
windows)
if [ -n "${ProgramData:-}" ]; then
printf '%s\n' "${ProgramData}/BackOne"
elif [ -n "${PROGRAMDATA:-}" ]; then
printf '%s\n' "${PROGRAMDATA}/BackOne"
else
printf '%s\n' "/c/ProgramData/BackOne"
fi
;;
*) printf '%s\n' "/var/lib/backone" ;;
esac
}
_backone_default_addons_dir() {
case "${BACKONE_PLATFORM}" in
mac) printf '%s\n' "/Library/Application Support/BackOne/addons" ;;
windows)
if [ -n "${ProgramFiles:-}" ]; then
printf '%s\n' "${ProgramFiles}/BackOne/addons"
elif [ -n "${PROGRAMFILES:-}" ]; then
printf '%s\n' "${PROGRAMFILES}/BackOne/addons"
else
printf '%s\n' "/c/Program Files/BackOne/addons"
fi
;;
*) printf '%s\n' "/usr/lib/backone/addons" ;;
esac
}
_backone_default_bin_dir() {
case "${BACKONE_PLATFORM}" in
mac) printf '%s\n' "/usr/local/bin" ;;
windows)
if [ -n "${ProgramFiles:-}" ]; then
printf '%s\n' "${ProgramFiles}/BackOne/bin"
elif [ -n "${PROGRAMFILES:-}" ]; then
printf '%s\n' "${PROGRAMFILES}/BackOne/bin"
else
printf '%s\n' "/c/Program Files/BackOne/bin"
fi
;;
*) printf '%s\n' "/usr/bin" ;;
esac
}
backone_resolve_paths() {
_backone_detect_platform
BACKONE_HOME="${BACKONE_HOME:-$(_backone_default_home)}"
BACKONE_ADDONS_DIR="${BACKONE_ADDONS_DIR:-$(_backone_default_addons_dir)}"
BACKONE_BIN_DIR="${BACKONE_BIN_DIR:-$(_backone_default_bin_dir)}"
}
# Prefix DESTDIR (packaging staging) onto an absolute install path.
backone_install_path() {
local destdir="${1:-}"
local target="${2:-}"
if [ -z "$destdir" ]; then
printf '%s' "$target"
return 0
fi
case "$target" in
/*) printf '%s%s' "$destdir" "$target" ;;
*) printf '%s/%s' "$destdir" "$target" ;;
esac
}