#!/bin/bash
set -euo pipefail
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
INSTALL_PATH=$(cd "${SCRIPT_DIR}/../../.." && pwd)
PACKAGE_NAME="affinity-sched"
PACKAGE_DIR="affinity_sched"
SITE_PACKAGES="${INSTALL_PATH}/python/site-packages"
_msboost_log() {
local level="$1"
shift
local msg="$*"
local ts
ts=$(date "+%Y-%m-%d %H:%M:%S")
if [[ "${level}" == "ERROR" || "${level}" == "WARNING" ]]; then
echo "[msboost][${ts}][${level}]: ${msg}" >&2
else
echo "[msboost][${ts}][${level}]: ${msg}"
fi
}
log_info() { _msboost_log "INFO" "$@"; }
log_warning() { _msboost_log "WARNING" "$@"; }
log_error() { _msboost_log "ERROR" "$@"; }
log_info "Starting uninstallation of ${PACKAGE_NAME}"
REMOVED=0
for dist_info in "${SITE_PACKAGES}"/${PACKAGE_DIR}-*.dist-info; do
if [[ -d "${dist_info}" ]]; then
RECORD="${dist_info}/RECORD"
if [[ -f "${RECORD}" ]]; then
while IFS= read -r line; do
filepath="${line%%,*}"
full_path="${SITE_PACKAGES}/${filepath}"
if [[ -e "${full_path}" ]]; then
rm -f "${full_path}"
REMOVED=1
fi
done < "${RECORD}"
fi
rm -rf "${dist_info}"
REMOVED=1
fi
done
PKG_DIR="${SITE_PACKAGES}/${PACKAGE_DIR}"
if [[ -d "${PKG_DIR}" ]]; then
rm -rf "${PKG_DIR}"
REMOVED=1
fi
if [[ ${REMOVED} -eq 0 ]]; then
log_warning "Package ${PACKAGE_NAME} not found in ${SITE_PACKAGES}"
fi
INFO_DIR="${INSTALL_PATH}/share/info/msboost"
rm -f "${INFO_DIR}/version.info" "${INFO_DIR}/uninstall.sh"
if [[ -d "${INFO_DIR}" ]] && [[ -z "$(ls -A "${INFO_DIR}" 2>/dev/null)" ]]; then
rmdir "${INFO_DIR}"
fi
CANN_UNINSTALL="${INSTALL_PATH}/cann_uninstall.sh"
ENTRY='uninstall_package "share/info/msboost"'
if [[ -f "${CANN_UNINSTALL}" ]]; then
NEED_RESTORE=0
ORIG_PERM=$(stat -c "%a" "${CANN_UNINSTALL}")
if [[ ! -w "${CANN_UNINSTALL}" ]]; then
chmod +w "${CANN_UNINSTALL}"
NEED_RESTORE=1
fi
if [[ ${NEED_RESTORE} -eq 1 ]]; then
restore_cann_uninstall_perm() {
chmod "${ORIG_PERM}" "${CANN_UNINSTALL}" 2>/dev/null || true
}
trap restore_cann_uninstall_perm EXIT
fi
sed -i "\|^${ENTRY}$|d" "${CANN_UNINSTALL}"
if [[ ${NEED_RESTORE} -eq 1 ]]; then
trap - EXIT
restore_cann_uninstall_perm
fi
fi
log_info "Uninstallation completed successfully"