#!/bin/bash

usage()
{
	echo "DESCRIPTION:"
	echo "  mount file system to /mnt"
	echo " "
	echo "EXAMPLE:"
	echo "  $0 192.168.3.193"
	echo "  $0 /opt/xxx/xxx/rootfs.img"
	echo " "
}
# 验证IP地址格式的函数
validate_ip() {
	local ip=$1
	local stat=1

	# IPv4格式检查 (四段数字，0-255范围)
	if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
		OIFS=$IFS
		IFS='.'
		ip=($ip)
		IFS=$OIFS
		[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
		stat=$?
	fi
	return $stat
}

# 检查root权限
#if [ "$(id -u)" -ne 0 ]; then
#	echo "需要添加sudo执行此脚本... " >&2
#	exit 1
#fi
# 检查参数数量
if [ $# -ne 1 ]; then
	usage
	exit 1
fi

input=$1

# 检查输入类型
if validate_ip "$input"; then
	#echo "检测到IP地址：$input"
	#echo "正在测试网络连通性 (2次尝试)..."
    
	# 尝试ping三次
	if ping -c 2 -W 1 "$input" >/dev/null 2>&1; then
		#echo "状态：IP地址 $input 可访问"
		sudo umount /mnt -f > /dev/null 2>&1
		#sudo mount -t nfs -o nolock,timeo=10 $1:/ /mnt
		sudo mount -t nfs -o nolock,retrans=5,timeo=5 $1:/ /mnt
		exit 0
	else
		echo "error：can not connect to IP: $input" >&2
		exit 2
	fi
else
	#echo "检测到文件名：$input"

	# 检查文件是否存在
	if [ -f "$input" ]; then
		#echo "状态：文件 $input 存在"
		sudo umount /mnt -f > /dev/null 2>&1
		sudo mount $1 /mnt
	else
		echo "error：can not found file: $input" >&2
		exit 3
	fi
fi

exit 0

