美文网首页
自动复制依赖代码

自动复制依赖代码

作者: Lupino | 来源:发表于2020-12-22 22:47 被阅读0次

    在写 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
    

    相关文章

      网友评论

          本文标题:自动复制依赖代码

          本文链接:https://www.haomeiwen.com/subject/cijenktx.html