自动复制依赖代码

2020-12-22  本文已影响0人  Lupino

在写 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
上一篇下一篇

猜你喜欢

热点阅读