#!/bin/bash
USERNAME=$(id -un)
USERGROUP=$(id -gn)
COMMON_SHELL_PATH="common.sh"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
warn() {
echo -e "${YELLOW}[WARN]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1"
}
check_installation() {
local _mstt_path=$INSTALL_DIR/mstt
if [[ -d "${_mstt_path}" ]]; then
if [[ "$SILENT_MODE" != "true" ]]; then
echo -n "目录 ${_mstt_path} 已存在,是否覆盖? (y/N): "
read -r response
if [[ ! "$response" =~ ^[Yy]$ ]]; then
info "安装已取消"
exit 0
fi
fi
warn "将覆盖现有安装: ${_mstt_path}"
fi
}
create_install_dir() {
install_path=$(convert_install_path "${INSTALL_DIR}/mstt")
create_folder $install_path "${USERNAME}:${USERGROUP}" 750
}
function convert_install_path() {
local _install_path="$1"
_install_path=`echo "${_install_path}" | sed -r "s/((\/)|(\/\.))*$//g" | sed -r "s|/\./|/|g"`
if [ -z "${_install_path}" ]; then
_install_path="/"
fi
local _prefix=`echo "${_install_path}" | cut -d"/" -f1`
if [ ! -z "${_prefix}" ] && [ "~" != "${_prefix}" ]; then
_install_path="${run_path}/${_install_path}"
fi
local _suffix_path=`echo "${_install_path}" | cut -d"~" -f2`
if [ "${_suffix_path}" != "${_install_path}" ]; then
local _home_path=`eval echo "~" | sed "s/\/*$//g"`
_install_path="${_home_path}${_suffix_path}"
fi
echo "${_install_path}"
}
copy_file() {
local source="$1"
local target="$2"
if [ ! -e "${source}" ]; then
error "${source} does not exist!"
exit 1
fi
cp -rf "${source}" "${target}"
if [ $? -ne 0 ]; then
error "copy ${source} failed!"
exit 1
fi
}
main_install() {
INSTALL_DIR=$(get_install_path)
if [[ "$SILENT_MODE" != "true" ]]; then
echo "========================================="
echo " mstt 安装程序"
echo "========================================="
echo "安装目录: $INSTALL_DIR"
echo ""
fi
check_installation
create_install_dir
info "正在安装文件..."
copy_file "$PWD/ms_fmk_transplt" "$INSTALL_DIR/mstt"/
info "安装完成!"
info "安装目录: $INSTALL_DIR"
}
function get_install_path() {
if [ -z "${input_install_path}" ]; then
local _install_path
local _home_path=`eval echo "~"`
_home_path=`echo "${_home_path}" | sed "s/\/*$//g"`
_install_path="${_home_path}/Ascend"
else
_install_path="${input_install_path}"
fi
echo "${_install_path}"
}
main() {
main_install
exit 0
}
source ${COMMON_SHELL_PATH}
install_file=""
input_install_path=""
install_for_all=n
install_flag=n
uninstall_flag=n
upgrade_flag=n
quiet_flag=n
version_flag=n
check_flag=n
pylocal=y
force_flag=n
run_path=`echo "$2" | cut -d"-" -f3-`
if [ -z "${run_path}" ]; then
run_path=`pwd`
else
run_path=`echo "${run_path}" | sed "s/((\/)|(\/\.))*$//g"`
[ -z "${run_path}" ] && run_path="/"
if [ ! -d "${run_path}" ]; then
log_and_print $LEVEL_ERROR "Run package path is invalid: $run_path"
exit 1
fi
fi
shift 2
start_log
for arg in "$@"; do
case "$arg" in
--force)
force_flag=y
;;
--check)
check_flag=y
;;
--quiet)
quiet_flag=y
;;
--install-path=*)
input_install_path=`echo "$arg" | cut -d"=" -f2`
;;
--install-for-all)
install_for_all=y
;;
--full)
install_flag=y
;;
--install)
install_flag=y
;;
--run)
install_flag=y
;;
--devel)
install_flag=y
;;
--uninstall)
uninstall_flag=y
;;
--upgrade)
upgrade_flag=y
;;
--version)
version_flag=y
;;
-*)
echo "Unsupported parameters: $arg"
;;
*)
if [ ! -z "$arg" ]; then
echo "Unsupported parameters: $arg"
fi
break
;;
esac
done
main