restore on upgrade failure
This commit is contained in:
parent
e426141657
commit
8721add701
1 changed files with 40 additions and 30 deletions
|
|
@ -52,49 +52,47 @@ install_lightning_pub() {
|
||||||
upgrade_status=100
|
upgrade_status=100
|
||||||
|
|
||||||
# Stop the service if running to avoid rug-pull during backup and file replacement
|
# Stop the service if running to avoid rug-pull during backup and file replacement
|
||||||
|
was_running=false
|
||||||
if systemctl --user is-active --quiet lightning_pub 2>/dev/null; then
|
if systemctl --user is-active --quiet lightning_pub 2>/dev/null; then
|
||||||
log "Stopping Lightning.Pub service before upgrade..."
|
log "Stopping Lightning.Pub service before upgrade..."
|
||||||
systemctl --user stop lightning_pub
|
systemctl --user stop lightning_pub
|
||||||
|
was_running=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log "Backing up user data before upgrade..."
|
log "Backing up user data before upgrade..."
|
||||||
BACKUP_DIR="$USER_HOME/lightning_pub_backup_$(date +%s)"
|
BACKUP_DIR="$USER_HOME/lightning_pub_backup_$(date +%s)"
|
||||||
mkdir -p "$BACKUP_DIR"
|
mv "$USER_HOME/lightning_pub" "$BACKUP_DIR"
|
||||||
mv "$USER_HOME/lightning_pub"/*.sqlite "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/.env "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/logs "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/metric_cache "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/.jwt_secret "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/.wallet_secret "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/.installed_commit "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/admin.npub "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/app.nprofile "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/admin.connect "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
mv "$USER_HOME/lightning_pub"/admin.enroll "$BACKUP_DIR/" 2>/dev/null || true
|
|
||||||
|
|
||||||
log "Replacing application files..."
|
log "Replacing application files..."
|
||||||
|
|
||||||
rm -rf "$USER_HOME/lightning_pub"
|
|
||||||
mv "$USER_HOME/lightning_pub_temp" "$USER_HOME/lightning_pub"
|
mv "$USER_HOME/lightning_pub_temp" "$USER_HOME/lightning_pub"
|
||||||
|
|
||||||
log "Restoring user data..."
|
log "Restoring user data..."
|
||||||
if [ -n "$(ls -A "$BACKUP_DIR" 2>/dev/null)" ]; then
|
cp "$BACKUP_DIR"/*.sqlite "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
cp -r "$BACKUP_DIR"/* "$USER_HOME/lightning_pub/"
|
cp "$BACKUP_DIR"/.env "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
# Ensure correct ownership post-restore (fixes potential mismatches)
|
cp -r "$BACKUP_DIR"/logs "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chown -R "$USER_NAME:$USER_NAME" "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
cp -r "$BACKUP_DIR"/metric_cache "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
# Secure DB files (as before)
|
cp "$BACKUP_DIR"/.jwt_secret "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chmod 600 "$USER_HOME/lightning_pub/db.sqlite" 2>/dev/null || true
|
cp "$BACKUP_DIR"/.wallet_secret "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chmod 600 "$USER_HOME/lightning_pub/metrics.sqlite" 2>/dev/null || true
|
cp "$BACKUP_DIR"/.installed_commit "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chmod 600 "$USER_HOME/lightning_pub/.jwt_secret" 2>/dev/null || true
|
cp "$BACKUP_DIR"/admin.npub "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chmod 600 "$USER_HOME/lightning_pub/.wallet_secret" 2>/dev/null || true
|
cp "$BACKUP_DIR"/app.nprofile "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chmod 600 "$USER_HOME/lightning_pub/admin.connect" 2>/dev/null || true
|
cp "$BACKUP_DIR"/admin.connect "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chmod 600 "$USER_HOME/lightning_pub/admin.enroll" 2>/dev/null || true
|
cp "$BACKUP_DIR"/admin.enroll "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
# Ensure log/metric dirs are writable (dirs need execute for traversal)
|
|
||||||
chmod 755 "$USER_HOME/lightning_pub/logs" 2>/dev/null || true
|
# Ensure correct ownership post-restore (fixes potential mismatches)
|
||||||
chmod 755 "$USER_HOME/lightning_pub/logs/"*/ 2>/dev/null || true # Subdirs like apps/
|
chown -R "$USER_NAME:$USER_NAME" "$USER_HOME/lightning_pub/" 2>/dev/null || true
|
||||||
chmod 755 "$USER_HOME/lightning_pub/metric_cache" 2>/dev/null || true
|
# Secure DB files (as before)
|
||||||
fi
|
chmod 600 "$USER_HOME/lightning_pub/db.sqlite" 2>/dev/null || true
|
||||||
rm -rf "$BACKUP_DIR"
|
chmod 600 "$USER_HOME/lightning_pub/metrics.sqlite" 2>/dev/null || true
|
||||||
|
chmod 600 "$USER_HOME/lightning_pub/.jwt_secret" 2>/dev/null || true
|
||||||
|
chmod 600 "$USER_HOME/lightning_pub/.wallet_secret" 2>/dev/null || true
|
||||||
|
chmod 600 "$USER_HOME/lightning_pub/admin.connect" 2>/dev/null || true
|
||||||
|
chmod 600 "$USER_HOME/lightning_pub/admin.enroll" 2>/dev/null || true
|
||||||
|
# Ensure log/metric dirs are writable (dirs need execute for traversal)
|
||||||
|
chmod 755 "$USER_HOME/lightning_pub/logs" 2>/dev/null || true
|
||||||
|
chmod 755 "$USER_HOME/lightning_pub/logs/"*/ 2>/dev/null || true # Subdirs like apps/
|
||||||
|
chmod 755 "$USER_HOME/lightning_pub/metric_cache" 2>/dev/null || true
|
||||||
|
|
||||||
elif [ -d "$USER_HOME/lightning_pub" ]; then
|
elif [ -d "$USER_HOME/lightning_pub" ]; then
|
||||||
# --- CONFLICT/UNSAFE PATH ---
|
# --- CONFLICT/UNSAFE PATH ---
|
||||||
|
|
@ -128,6 +126,16 @@ install_lightning_pub() {
|
||||||
log " $line"
|
log " $line"
|
||||||
done
|
done
|
||||||
log "${PRIMARY_COLOR}Full log available in $USER_HOME/lightning_pub/npm_install.log${RESET_COLOR}"
|
log "${PRIMARY_COLOR}Full log available in $USER_HOME/lightning_pub/npm_install.log${RESET_COLOR}"
|
||||||
|
|
||||||
|
log "Restoring previous installation due to upgrade failure..."
|
||||||
|
rm -rf "$USER_HOME/lightning_pub"
|
||||||
|
mv "$BACKUP_DIR" "$USER_HOME/lightning_pub"
|
||||||
|
|
||||||
|
if [ "$was_running" = true ]; then
|
||||||
|
log "Restarting Lightning.Pub service after restore."
|
||||||
|
systemctl --user start lightning_pub
|
||||||
|
fi
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -139,6 +147,8 @@ install_lightning_pub() {
|
||||||
else
|
else
|
||||||
touch "$USER_HOME/lightning_pub/.installed_commit"
|
touch "$USER_HOME/lightning_pub/.installed_commit"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
rm -rf "$BACKUP_DIR"
|
||||||
|
|
||||||
return $upgrade_status
|
return $upgrade_status
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue