mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-08-16 01:26:12 +02:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d20c06ce0e | |||
| c0ce8b3a11 |
+3
-14
@@ -35,10 +35,7 @@ function update_script() {
|
||||
systemctl stop tubearchivist tubearchivist-celery tubearchivist-beat
|
||||
msg_ok "Stopped Services"
|
||||
|
||||
create_backup \
|
||||
/opt/tubearchivist/.env \
|
||||
/opt/tubearchivist/cache \
|
||||
/opt/tubearchivist/backend/run.sh
|
||||
create_backup /opt/tubearchivist/.env
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tubearchivist" "tubearchivist/tubearchivist" "tarball"
|
||||
|
||||
@@ -51,8 +48,6 @@ function update_script() {
|
||||
mkdir -p /opt/tubearchivist/backend/static
|
||||
cp -r /opt/tubearchivist/frontend/dist/* /opt/tubearchivist/backend/static/
|
||||
cp /opt/tubearchivist/docker_assets/backend_start.py /opt/tubearchivist/backend/
|
||||
rm -rf /opt/tubearchivist/.venv
|
||||
$STD uv venv /opt/tubearchivist/.venv --python 3.13
|
||||
$STD uv pip install --python /opt/tubearchivist/.venv/bin/python -r /opt/tubearchivist/backend/requirements.txt
|
||||
if [[ -f /opt/tubearchivist/backend/requirements.plugins.txt ]]; then
|
||||
mkdir -p /opt/yt_plugins/bgutil
|
||||
@@ -64,14 +59,8 @@ function update_script() {
|
||||
sed -i 's|^TA_APP_DIR=/opt/tubearchivist$|TA_APP_DIR=/opt/tubearchivist/backend|' /opt/tubearchivist/.env
|
||||
sed -i 's|^TA_CACHE_DIR=/opt/tubearchivist/cache$|TA_CACHE_DIR=/cache|' /opt/tubearchivist/.env
|
||||
sed -i 's|^TA_MEDIA_DIR=/opt/tubearchivist/media$|TA_MEDIA_DIR=/youtube|' /opt/tubearchivist/.env
|
||||
ln -sfn /opt/tubearchivist/cache /cache
|
||||
# /youtube may already be a user-managed Proxmox bind mount. Only create the symlink if nothing is there
|
||||
if [[ ! -e /youtube ]]; then
|
||||
mkdir -p /opt/tubearchivist/media
|
||||
ln -sfn /opt/tubearchivist/media /youtube
|
||||
elif ! mountpoint -q /youtube && [[ ! -L /youtube ]]; then
|
||||
msg_error "/youtube exists but is neither a mount nor a symlink - check manually"
|
||||
fi
|
||||
ln -sf /opt/tubearchivist/cache /cache
|
||||
ln -sf /opt/tubearchivist/media /youtube
|
||||
ln -sf /opt/tubearchivist/.env /opt/tubearchivist/backend/.env
|
||||
msg_ok "Restored Configuration"
|
||||
|
||||
|
||||
+13
-9
@@ -1336,6 +1336,10 @@ create_backup() {
|
||||
msg_warn "Skipping backup of '${path}' (not found)"
|
||||
continue
|
||||
fi
|
||||
if mountpoint -q "$path" 2>/dev/null; then
|
||||
msg_warn "Skipping backup of '${path}' (is a mount point)"
|
||||
continue
|
||||
fi
|
||||
dest="${store}/files${path}"
|
||||
if ! mkdir -p "$(dirname "$dest")" || ! cp -a "$path" "$dest"; then
|
||||
msg_error "Backup of '${path}' failed - aborting update"
|
||||
@@ -2524,9 +2528,9 @@ _download_source_tarball() {
|
||||
# directory). Extracts <tarball_path> into <workdir>, then copies the contents
|
||||
# of that top-level directory into <target>.
|
||||
#
|
||||
# - Honors CLEAN_INSTALL=1 (wipes <target> first, dotfiles included — back
|
||||
# up config dotfiles like .env via create_backup and call restore_backup
|
||||
# BEFORE any build step that sources them).
|
||||
# - Honors CLEAN_INSTALL=1 (wipes <target> first, dotfiles included, mount
|
||||
# points preserved — back up config dotfiles like .env via create_backup
|
||||
# and call restore_backup BEFORE any build step that sources them).
|
||||
# - Does NOT own <workdir>: the caller creates it and is responsible for its
|
||||
# cleanup (typically via a RETURN trap on its tmpdir).
|
||||
# - cp failures are non-fatal here, matching the previous inline behavior.
|
||||
@@ -2538,7 +2542,7 @@ _deploy_source_tarball() {
|
||||
|
||||
mkdir -p "$target"
|
||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||
find "${target:?}" -mindepth 1 -delete
|
||||
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
||||
fi
|
||||
|
||||
tar --no-same-owner -xzf "$tarball" -C "$workdir" || {
|
||||
@@ -2564,9 +2568,9 @@ _deploy_source_tarball() {
|
||||
# a single top-level directory, that directory is stripped (its contents land
|
||||
# directly in <target>); otherwise the archive contents are copied as-is.
|
||||
#
|
||||
# - Honors CLEAN_INSTALL=1 (wipes <target> first, dotfiles included — back
|
||||
# up config dotfiles like .env via create_backup and call restore_backup
|
||||
# BEFORE any build step that sources them).
|
||||
# - Honors CLEAN_INSTALL=1 (wipes <target> first, dotfiles included, mount
|
||||
# points preserved — back up config dotfiles like .env via create_backup
|
||||
# and call restore_backup BEFORE any build step that sources them).
|
||||
# - Does NOT own <workdir>: the caller creates it and cleans it up.
|
||||
#
|
||||
# Returns: 0 on success, 65 on unsupported format, 251 on extraction failure,
|
||||
@@ -2627,7 +2631,7 @@ _deploy_unpacked_archive() {
|
||||
# was truncated, the archive was unreadable, or it unpacked to nothing.
|
||||
mkdir -p "$target"
|
||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||
find "${target:?}" -mindepth 1 -delete
|
||||
find "${target:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
||||
fi
|
||||
|
||||
if ! cp -r "$source_dir"/* "$target/"; then
|
||||
@@ -9368,7 +9372,7 @@ fetch_and_deploy_from_url() {
|
||||
mkdir -p "$directory"
|
||||
|
||||
if [[ "${CLEAN_INSTALL:-0}" == "1" ]]; then
|
||||
find "${directory:?}" -mindepth 1 -delete
|
||||
find "${directory:?}" -mindepth 1 \( -type d -exec mountpoint -q {} \; -prune \) -o -delete
|
||||
fi
|
||||
|
||||
local unpack_tmp
|
||||
|
||||
Reference in New Issue
Block a user