#!/bin/bash

PACKAGE_FILE="/usr/local/src/package_updates/package_list.txt"
PKG_DIR="/var/cpanel/packages"

echo "Starting package migration..."

if [ ! -f "$PACKAGE_FILE" ]; then
echo "ERROR: Package list file not found: $PACKAGE_FILE"
exit 1
fi

while IFS= read -r oldpkg
do
[ -z "$oldpkg" ] && continue

newpkg="${oldpkg}_old"

echo "----------------------------------------"
echo "Processing: $oldpkg → $newpkg"

# Check if original package exists
if [ ! -f "$PKG_DIR/$oldpkg" ]; then
    echo "Package $oldpkg not found. Skipping."
    continue
fi

# Create new package if not exists
if [ ! -f "$PKG_DIR/$newpkg" ]; then
    echo "Creating package copy: $newpkg"
    cp "$PKG_DIR/$oldpkg" "$PKG_DIR/$newpkg"
else
    echo "Package $newpkg already exists."
fi

# Find users assigned to the old package
users=$(grep -l "^PLAN=$oldpkg" /var/cpanel/users/* 2>/dev/null | awk -F/ '{print $5}')

if [ -z "$users" ]; then
    echo "No users found for package $oldpkg"
    continue
fi

for user in $users
do
    echo "Changing package for user: $user → $newpkg"
    whmapi1 changepackage user="$user" pkg="$newpkg" >/dev/null
done
done < "$PACKAGE_FILE"

echo "----------------------------------------"
echo "Package migration completed."

