#!/bin/bash
set -e
log() { echo "$(date '+%F %T') [INFO] $*" ; }
warn() { echo >&2 -e "\033[1;31m[$(date '+%F %T')][WARN] $*\033[0m" ; }
die() { echo >&2 -e "\033[1;31m[$(date '+%F %T')][FAIL] $*\033[0m"; exit 1; }
[[ $# -eq 1 ]] || die "Usage: $0 <workspace_dir>"
WORKSPACE=$(realpath "$1")
[[ -d $WORKSPACE ]] || die "Workspace $WORKSPACE not exists or not a directory"
CODE_DIR=${WORKSPACE}/RecSDK
MODEL_DIR=${WORKSPACE}/RecSDK_examples
ARCH=$(uname -m)
PKG_NAME=Ascend-mindxsdk-mxrec*${ARCH}.tar.gz
PKG_PATH=${WORKSPACE}/${PKG_NAME}
TF_WHL=mindxsdk-mxrec/tf1_whl/mx_rec-*.whl
DEMO_DIR="little_demo"
INSTALL_BASE="${WORKSPACE}/workspace_tf"
rm -rf ${INSTALL_BASE}
mkdir -p ${INSTALL_BASE}
cd ${INSTALL_BASE} || die "cd ${INSTALL_BASE} failed"
log "Extracting ${PKG_NAME} ..."
cp -rf ${PKG_PATH} ./ || die "cp pkg failed"
tar -zxvf ${PKG_NAME} || die "tar failed"
log "Installing mx_rec wheel ..."
pip3 install ${TF_WHL} --force-reinstall --no-cache-dir || die "pip install failed"
[[ -d ${MODEL_DIR}/examples/demo/${DEMO_DIR} ]] || die "Demo directory not found"
cp -rf ${MODEL_DIR}/examples/demo/${DEMO_DIR} ./ || die "cp demo failed"
cd ${DEMO_DIR} || die "cd demo failed"
IP=$(hostname -I | awk '{print $1}')
[[ -n $IP ]] || die "Cannot obtain local IP"
log "Detected IP: $IP"
log "Running demo ..."
rm -rf temp*.log
source /usr/local/Ascend/ascend-toolkit/set_env.sh
sed -i -e 's/local_rank_size=8/local_rank_size=1/g' run.sh
bash run.sh main.py $IP
COUNT=$(grep "Demo done" temp*.log | wc -l)
if [[ $COUNT -eq 1 ]]; then
log "---------------- presmoke_tf executed successfully! ----------------"
else
die "Case failed"
fi