mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2026-02-05 14:19:09 +01:00
- mailServer: inline EmailLimitsNew controller in footer_scripts, getEmailsForDomain allows emailForwarding - mailServer.js: EmailLimitsNew guard for $scope.emails, remove console.log - emailLimitsController.js: add standalone controller, fix PNotify check - Add deploy-email-limits-fix.sh and EMAIL-LIMITS-DEPLOY-CHECKLIST.md - Sync mailServer static files in both mailServer/static and static/
79 lines
2.3 KiB
Bash
Executable File
79 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Deploy Email Limits fix to a CyberPanel installation.
|
|
# Copies recommended mailServer files and optionally restarts lscpd.
|
|
#
|
|
# Usage (run from anywhere):
|
|
# sudo bash /home/cyberpanel-repo/deploy-email-limits-fix.sh
|
|
# sudo bash deploy-email-limits-fix.sh [REPO_DIR] [CP_DIR]
|
|
#
|
|
# Or from repo root: cd /home/cyberpanel-repo && sudo bash deploy-email-limits-fix.sh
|
|
|
|
set -e
|
|
|
|
log() { echo "[$(date +%Y-%m-%d\ %H:%M:%S)] $*"; }
|
|
err() { log "ERROR: $*" >&2; }
|
|
|
|
# Resolve REPO_DIR: explicit arg, then script dir, then common locations
|
|
if [[ -n "$1" && -d "$1/mailServer" ]]; then
|
|
REPO_DIR="$1"
|
|
shift
|
|
elif [[ -d "$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)/mailServer" ]]; then
|
|
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
elif [[ -d "/home/cyberpanel-repo/mailServer" ]]; then
|
|
REPO_DIR="/home/cyberpanel-repo"
|
|
elif [[ -d "./mailServer" ]]; then
|
|
REPO_DIR="$(pwd)"
|
|
else
|
|
err "Repo not found. Use: sudo bash /home/cyberpanel-repo/deploy-email-limits-fix.sh"
|
|
err "Or: cd /path/to/cyberpanel-repo && sudo bash deploy-email-limits-fix.sh"
|
|
exit 1
|
|
fi
|
|
|
|
CP_DIR="${1:-/usr/local/CyberCP}"
|
|
RESTART_LSCPD="${RESTART_LSCPD:-1}"
|
|
|
|
if [[ ! -d "$CP_DIR" ]]; then
|
|
err "CyberPanel directory not found: $CP_DIR"
|
|
exit 1
|
|
fi
|
|
if [[ ! -d "$REPO_DIR/mailServer" ]]; then
|
|
err "Repo mailServer not found in: $REPO_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
log "REPO_DIR=$REPO_DIR"
|
|
log "CP_DIR=$CP_DIR"
|
|
|
|
FILES=(
|
|
"mailServer/mailserverManager.py"
|
|
"mailServer/templates/mailServer/EmailLimits.html"
|
|
"mailServer/static/mailServer/mailServer.js"
|
|
"mailServer/static/mailServer/emailLimitsController.js"
|
|
)
|
|
|
|
for rel in "${FILES[@]}"; do
|
|
src="$REPO_DIR/$rel"
|
|
dst="$CP_DIR/$rel"
|
|
if [[ ! -f "$src" ]]; then
|
|
err "Source missing: $src"
|
|
exit 1
|
|
fi
|
|
mkdir -p "$(dirname "$dst")"
|
|
cp -f "$src" "$dst"
|
|
log "Copied: $rel"
|
|
done
|
|
|
|
if [[ "$RESTART_LSCPD" =~ ^(1|yes|true)$ ]]; then
|
|
if systemctl is-active --quiet lscpd 2>/dev/null; then
|
|
log "Restarting lscpd..."
|
|
systemctl restart lscpd || { err "lscpd restart failed"; exit 1; }
|
|
log "lscpd restarted."
|
|
else
|
|
log "lscpd not running or not a systemd service; skip restart."
|
|
fi
|
|
else
|
|
log "Skipping restart (set RESTART_LSCPD=1 to restart lscpd)."
|
|
fi
|
|
|
|
log "Deploy complete. Hard-refresh /email/EmailLimits in the browser (Ctrl+Shift+R)."
|