f5222671创建于 2023年7月20日历史提交
#!/bin/sh

mount -o remount,rw /

PREFIX=/
BIN_DIR=${PREFIX}usr/bin
OHOS_NDK_BIN=/ohos-sdk/linux/native/build-tools/cmake/bin/
TAR_SUFFIX=tar.gz

CMAKE=cmake_make
BUSYBOX=busybox
PERL=perl
SHELL_CMD=shell_cmd

HOST=arm

if [ ! -d ${BIN_DIR} ]; then
    echo "create bin dir!"
    mkdir -p ${BIN_DIR}
    chmod -R 777 ${BIN_DIR}
fi
if [ ! -d ${PREFIX}/bin ]; then
    echo "create bin dir!"
    mkdir -p ${PREFIX}/bin
    chmod -R 777 ${PREFIX}/bin
fi

if [ "$1" == "aarch64" ];then
    HOST=aarch64
fi

function unpack(){
    if [ ! -f $1 ];then
        echo "no such file or directory: $1"
        exit 1
    fi

    tar -zxf $1
    if [ $? -ne 0 ];then
        echo "unpack $1 failed!"
        exit 1
    fi

    echo "unpack $1 success!"
    return 0
}

function copy_files(){
    if [ ! -d $1 ]; then
        echo "no such file or directory : $1"
        exit 1
    fi

    cp -arf $1/bin/* ${BIN_DIR}/

    if [ $? -ne 0 ]; then
        echo "cp files error!"
        exit 1
    fi

    echo "cp $1 files success"
    return 0
}

function set_busybox(){
    CMD_ARRAY=("diff" "tr" "expr" "awk")
    cp ${HOST}_${BUSYBOX}/bin/busybox ${PREFIX}/bin/
    if [ $? -ne 0 ];then
        echo "copy busybox failed!"
        exit 1
    fi

    cur_dir=`pwd`
    cd ${PREFIX}/bin

    for cmd in ${CMD_ARRAY[@]}
    do
        echo "cmd : ${cmd}"
        if [ -f $cmd ]; then
            rm ${cmd}
        fi
        ln -s busybox ${cmd}
        if [ $? -ne 0 ]; then
            echo " create ${cmd} link failed!"
            cd ${cur_dir}
            exit 1
        fi
    done

    cd ${cur_dir}

    return 0
}

function copyBinFiles(){
    BinFils=("sed" "env")
    cur_dir=`pwd`
    cd /bin/

    for bin in ${BinFils[@]}
    do
        cp ${bin} ${BIN_DIR}/
    done

    cd ${cur_dir}

    return 0
}

echo "start install the CI env tools"

CMAKE_TAR=${HOST}_${CMAKE}.${TAR_SUFFIX}
unpack ${CMAKE_TAR}
if [ $? -ne 0 ]; then
    echo "unpack cmake failed!"
    exit 1
fi
copy_files ${HOST}_${CMAKE}
if [ $? -ne 0 ];then
    echo "cp cmake files failed!"
    exit 1
fi
rm -rf ${HOST}_${CMAKE}

BUSYBOX_TAR=${HOST}_${BUSYBOX}.${TAR_SUFFIX}
unpack ${BUSYBOX_TAR}
if [ $? -ne 0 ]; then
    echo "unpack busybox failed!"
    exit 1
fi
set_busybox
rm -rf ${HOST}_${BUSYBOX}

PERL_TAR=${HOST}_${PERL}.${TAR_SUFFIX}
unpack ${PERL_TAR}
if [ $? -ne 0 ];then
    echo "unpack perl failed!"
    exit 1
fi

cp -arf ${HOST}_${PERL}/* ${PREFIX}/usr/
if [ $? -ne 0 ];then
    echo "cp perl files failed!"
    exit 1
fi

SHELL_CMD_TAR=${HOST}_${SHELL_CMD}.${TAR_SUFFIX}
unpack ${SHELL_CMD_TAR}
if [ $? -ne 0 ]; then
    echo "unpack shell cmd failed!"
    exit 1
fi
copy_files ${HOST}_${SHELL_CMD}
if [ $? -ne 0 ];then
    echo "cp cmd shell files failed!"
    exit 1
fi
rm -rf ${HOST}_${SHELL_CMD}

echo "check ohos-sdk"
if [ ! -d ${OHOS_NDK_BIN} ]; then
    mkdir -p ${OHOS_NDK_BIN}
fi
cp /usr/bin/cmake ${OHOS_NDK_BIN}
cp /usr/bin/ctest ${OHOS_NDK_BIN}

copyBinFiles

echo "set CI env success!!"