diff --git a/.gitignore b/.gitignore index 61fd441..7769fb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build -lib \ No newline at end of file +lib +out \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 130d88a..7cefc03 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,6 +5,7 @@ set(CMAKE_BUILD_TYPE Debug) set(CMAKE_SKIP_BUILD_RPATH FALSE) set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) +set(CMAKE_INSTALL_PREFIX "./") include(zcmake/zcmake.cmake) project(app) @@ -32,6 +33,7 @@ set(CMAKE_CXX_FLAGS "${C_CPP_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-pessimizing-move -Wno-reorder") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") message("CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}") +message("PROJECT_NAME: ${PROJECT_NAME}") set(DEP_INCLUDE ${DEP_INCLUDE} ./dep/) include(dep/iflytopcpp/module.cmake) @@ -42,9 +44,9 @@ include(dep/zwebservice/module.cmake) zadd_executable( TARGET - app.out + ${PROJECT_NAME}.out INSTALL - app + ${PROJECT_NAME} LINK_LIBRARIES pthread INCLUDE_DIRECTORIES diff --git a/README.md b/README.md index 553a3ed..9433176 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,7 @@ dep/ 存放第二方,或者第三方需要编译的代码 lib/ 编译好的依赖库,通过 sh/ 工程编译打包部署等相关脚本 env/ 应用程序运行环境 +build/ 应用程序编译目录 ``` ``` diff --git a/env/appsetup.sh b/env/appsetup.sh deleted file mode 100755 index e69de29..0000000 diff --git a/env/shutdown.sh b/env/shutdown.sh new file mode 100755 index 0000000..c34a721 --- /dev/null +++ b/env/shutdown.sh @@ -0,0 +1,2 @@ +#!/bin/bash +killall app.out \ No newline at end of file diff --git a/env/startup.sh b/env/startup.sh new file mode 100755 index 0000000..5ec36f0 --- /dev/null +++ b/env/startup.sh @@ -0,0 +1,2 @@ +#!/bin/bash +./app.out & \ No newline at end of file diff --git a/sh/deploy_rk3328.sh b/sh/deploy_rk3328.sh new file mode 100755 index 0000000..4dd620f --- /dev/null +++ b/sh/deploy_rk3328.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +PROJECT_NAME=app +ROOTFS_APP_DIR=/ +export PROJECT_PATH=$(pwd) + +set -e +set -x + +# 从命令行读取参数,目标IP,是否重启 $0 --ip --reboot + +while [ "$1" != "" ]; do + case $1 in + --ip) + shift + ip=$1 + ;; + --reboot) + shift + reboot=$1 + ;; + esac + shift +done + +# 如果IP为空,提示使用方法 + +if [ -z "$ip" ]; then + echo "Usage: $0 --ip --reboot " + exit 1 +fi + +scp -r out/${PROJECT_NAME}.tar.gz root@${ip}:${ROOTFS_APP_DIR} + +#如果存在shutdown.sh,则先执行shutdown.sh +ssh root@${ip} 'if [ -f "/${PROJECT_NAME}/shutdown.sh" ];then /${PROJECT_NAME}/shutdown.sh;fi' + +ssh root@${ip} "cd ${ROOTFS_APP_DIR} && tar -xvf ${PROJECT_NAME}.tar.gz -C ${ROOTFS_APP_DIR}" +ssh root@${ip} "cd ${ROOTFS_APP_DIR} && rm -rf ${PROJECT_NAME}.tar.gz" + +if [ "$reboot" = "true" ]; then + echo "reboot"; + ssh root@${ip} "reboot" +fi +echo "deploy success" diff --git a/sh/pc_envsetup.sh b/sh/envsetup_pc.sh similarity index 86% rename from sh/pc_envsetup.sh rename to sh/envsetup_pc.sh index 6e748d6..09fce9c 100755 --- a/sh/pc_envsetup.sh +++ b/sh/envsetup_pc.sh @@ -1,12 +1,11 @@ #!/bin/bash - +export PROJECT_PATH=`pwd` #!/bin/bash set -e #如果某条指令执行出错,则会退出脚本 # set -v #打印正在指令的指令 set -x -export PROJECT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" # 创建编译目录 # echo "创建编译目录" @@ -17,3 +16,5 @@ mkdir -p ${PROJECT_PATH}/build echo "cmake ../ \\" > ${PROJECT_PATH}/build/build.sh echo "-DCMAKE_C_COMPILER=gcc \\" >> ${PROJECT_PATH}/build/build.sh echo "-DCMAKE_CXX_COMPILER=g++ \\" >> ${PROJECT_PATH}/build/build.sh + +chmod +x ${PROJECT_PATH}/build/build.sh \ No newline at end of file diff --git a/sh/rk3328_envsetup.sh b/sh/envsetup_rk3328.sh similarity index 78% rename from sh/rk3328_envsetup.sh rename to sh/envsetup_rk3328.sh index acf2ec9..fe24873 100755 --- a/sh/rk3328_envsetup.sh +++ b/sh/envsetup_rk3328.sh @@ -1,7 +1,5 @@ #!/bin/bash -export PROJECT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -export COMPILE_TOOLS_DOWN_URL="ftp://zftpuser:zftpzwsd@192.168.1.2/zwsd/gnu_gcc_release/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.gz" -export COMPILE_TOOLS=aarch64-linux-gnu +export PROJECT_PATH=`pwd` #!/bin/bash diff --git a/sh/packet_rk3328.sh b/sh/packet_rk3328.sh new file mode 100755 index 0000000..33ae71c --- /dev/null +++ b/sh/packet_rk3328.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +PROJECT_NAME=app + + +set -e +set -x +export PROJECT_PATH=`pwd` + +#打包目录 +PACKET_DIR=$PROJECT_PATH/out/${PROJECT_NAME} + +# 删除打包目录,重新打包 +rm -rf ${PACKET_DIR} +mkdir ${PACKET_DIR} +######################################################################################## +################################根据需要修改下面的内容即可################################## +######################################################################################## + +#1. 编译 +cd $PROJECT_PATH/build +./build.sh && make -j8 && make install + +#2.打包APP +cp $PROJECT_PATH/build/${PROJECT_NAME}/${PROJECT_NAME}.out $PACKET_DIR/ + +#3.3 打包webapp +cp -rf $PROJECT_PATH/webapp $PACKET_DIR/ + +#4 拷贝配置文件 +cd $PROJECT_PATH/env/ && cp --path -rf ./* $PACKET_DIR/ + +#5 打包 +cur_date="`date +%Y%m%d`" + +cd $PACKET_DIR/../ +tar -czvf ${PACKET_DIR}_${cur_date}.tar.gz ${PROJECT_NAME} +cp ${PACKET_DIR}_${cur_date}.tar.gz ${PACKET_DIR}.tar.gz +echo "Brief:" +echo "generate ${PACKET_DIR}_${cur_date}.tar.gz..................." +echo "generate ${PACKET_DIR}.tar.gz..................." \ No newline at end of file diff --git a/sh/ssh-clear-id.sh b/sh/ssh-clear-id.sh new file mode 100755 index 0000000..b06cdc0 --- /dev/null +++ b/sh/ssh-clear-id.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +set -e #如果某条指令执行出错,则会退出脚本 + +if [ $# -eq 0 ]; then + echo "Usage: $0 " + exit 1 +fi + +# 清除目标主机的ssh-key +ip=$1 +ssh root@${ip} "rm -rf ~/.ssh/authorized_keys" \ No newline at end of file diff --git a/sh/ssh-copy-id.sh b/sh/ssh-copy-id.sh new file mode 100755 index 0000000..5d392ee --- /dev/null +++ b/sh/ssh-copy-id.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +set -e #如果某条指令执行出错,则会退出脚本 + +if [ $# -eq 0 ]; then + echo "Usage: $0 " + exit 1 +fi + +# 检查ssh-key是否存在,不存在则退出 +if [ ! -f ~/.ssh/id_rsa.pub ]; then + echo "ssh-key not found, please run ssh-keygen first" + exit 1 +fi + +ip=$1 +ssh-copy-id root@${ip} \ No newline at end of file