# Contributor: TangShaoteng <tangshaoteng@163.com>
# Maintainer: TangShaoteng <tangshaoteng@163.com>
source HPKBUILD > /dev/null 2>&1
logfile=${LYCIUM_THIRDPARTY_ROOT}/${pkgname}/${pkgname}_${ARCH}_${OHOS_SDK_VER}_test.log
checkprepare() {
# 将minidlnad可执行程序添加到环境变量
export PATH=${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/sbin:$PATH
}
openharmonycheck() {
res=0
# 获取IP地址
ipv4_addr_str=`ifconfig | grep "inet addr" | grep Bcast | awk '{print $2}'`
ipv4_addr_result=$(echo $ipv4_addr_str | grep "addr")
if [ -z "$ipv4_addr_result" ]
then
echo "error: not found ipv4 addr" > ${logfile} 2>&1
return -1;
fi
ipv4_addr=${ipv4_addr_result:5}
# 创建配置文件
echo -e "media_dir=A,${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Music\nmedia_dir=P,${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Pictures\nmedia_dir=V,${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Videos\nfriendly_name=OHOSMedia\ndb_dir=${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/cache\nlog_dir=${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/log\ninotify=yes" > ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/minidlna.conf
res=$?
if [ $res -ne 0 ]
then
echo "create minidlna config file failed" > ${logfile} 2>&1
return res;
fi
# 拷贝音乐资源到minidlna共享目录
mkdir -p ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Music ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Pictures ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Videos
cp /system/etc/graphic/bootsound.wav ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Music/
res=$?
if [ $res -ne 0 ]
then
echo "copy music file failed" > ${logfile} 2>&1
return res;
fi
# 拷贝图片资源到minidlna共享目录
cp /system/etc/wallpaperdefault.jpeg ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Pictures/
res=$?
if [ $res -ne 0 ]
then
echo "copy picture file failed" > ${logfile} 2>&1
return res;
fi
# 拷贝视频资源到minidlna共享目录
cp /system/etc/graphic/bootvideo.mp4 ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/Videos/
res=$?
if [ $res -ne 0 ]
then
echo "copy video file failed" > ${logfile} 2>&1
return res;
fi
# 启动minidlna服务器程序,并检查端口是否被占用
pid=$(netstat -tulnp | grep 8080 | awk '{print $7}' | cut -d'/' -f1)
if [ -n $pid ]
then
kill -9 $pid
fi
minidlnad -v -f ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/minidlna.conf -p 8080 -P ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/minidlna.pid > ${logfile} 2>&1
res=$?
if [ $res -ne 0 ]
then
echo "error: the minidlna service failed to run" >> ${logfile} 2>&1
mkdir ${LYCIUM_FAULT_PATH}/${pkgname}
cp ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/log/* ${LYCIUM_FAULT_PATH}/${pkgname}/
return res;
fi
# 查询minidlna服务器程序运行状态
minidlna_pid=`ps -ef | grep minidlnad | grep -v grep | awk '{print $2}'`
if [ -z "$minidlna_pid" ]
then
echo "error: the minidlna service exited" >> ${logfile} 2>&1
mkdir ${LYCIUM_FAULT_PATH}/${pkgname}
cp ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/log/* ${LYCIUM_FAULT_PATH}/${pkgname}/
return res;
fi
# 5分钟后主动结束minidlna服务器程序,测试结束
sleep 300
kill -9 ${minidlna_pid}
res=$?
cat ${LYCIUM_ROOT}/usr/${pkgname}/$ARCH/log/minidlna.log >> ${logfile} 2>&1
return $res
}