在写 luat 代码的时候,会有很多的依赖项,都是有官方SDK提供,
不过我们的项目不许要那么多没有用的代码。
开始我利用他的下载工具,一个一个的手动复制过来。
我们有 20 几个传感器设备,每个的依赖都不太一样,每个这样子复制也挺麻烦的。
更新就是一个问题。
所以我就写了以 bash 脚本来自动化解决
首先回去依赖库名称
get_requires() {
grep '^[ ]*require[ ]*"[^"]*"' $1 | awk -F '"' '{print $2}' | sort | uniq
}
通过 grep 和 awk 我们可以快速获取依赖库名称。
复制依赖看到项目中
DIST_PATH=dist
LIB_PATHS=(
../lib
../Luat_4G_RDA_8910/script_LuaTask/lib
)
do_copy_require() {
LIB=$1.lua
# if file exists ignore
if [ -f "${DIST_PATH}/${LIB}" ]; then
return
fi
if [ "$1" == "pio" ]; then
return
fi
if [ "$1" == "rtos" ]; then
return
fi
if [ "$1" == "uart" ]; then
return
fi
for LIB_PATH in ${LIB_PATHS[@]}; do
if [ -f "${LIB_PATH}/${LIB}" ]; then
cp ${LIB_PATH}/${LIB} ${DIST_PATH}
copy_require ${DIST_PATH}/${LIB}
return
fi
done
echo "${LIB} not found."
}
copy_require() {
for lib in $(get_requires $1); do
do_copy_require $lib
done
}
最后复制项目的依赖
copy_require main.lua
网友评论