|
|
@ -1,5 +1,5 @@ |
|
|
|
#!/bin/bash |
|
|
|
export PROJECT_PATH=$(pwd) |
|
|
|
|
|
|
|
|
|
|
|
function do_envsetup_pc() { |
|
|
|
#构造编译脚本 |
|
|
@ -23,12 +23,24 @@ function do_envsetup_rk3328() { |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
function do_flash_to_rk3328() { |
|
|
|
scp -r out/${PROJECT_NAME}.tar.gz ${USER}@${IP}:${ROOTFS_APP_DIR} |
|
|
|
function do_flash_to_targetboard() { |
|
|
|
scp -r out/${PROJECT_NAME}.tar.gz ${TARGET_USER}@${IP}:/ |
|
|
|
#如果存在shutdown.sh,则先执行shutdown.sh |
|
|
|
ssh ${USER}@${IP} 'if [ -f "/${PROJECT_NAME}/shutdown.sh" ];then /${PROJECT_NAME}/shutdown.sh;fi' |
|
|
|
ssh ${USER}@${IP} "cd ${ROOTFS_APP_DIR} && tar -xvf ${PROJECT_NAME}.tar.gz -C ${ROOTFS_APP_DIR}" |
|
|
|
ssh ${USER}@${IP} "cd ${ROOTFS_APP_DIR} && rm -rf ${PROJECT_NAME}.tar.gz" |
|
|
|
ssh ${TARGET_USER}@${IP} 'if [ -f "/${PROJECT_NAME}/shutdown.sh" ];then /${PROJECT_NAME}/shutdown.sh;fi' |
|
|
|
ssh ${TARGET_USER}@${IP} "cd / && tar -xvf app.tar.gz -C /" |
|
|
|
ssh ${TARGET_USER}@${IP} "cd / && rm -rf app.tar.gz" |
|
|
|
} |
|
|
|
|
|
|
|
function do_flashapp_to_targetboard() { |
|
|
|
# 杀死目标程序 |
|
|
|
ssh ${TARGET_USER}@${IP} "killall app.out" |
|
|
|
# 拷贝目标程序 |
|
|
|
scp -r ${PROJECT_PATH}/build/app/app.out ${TARGET_USER}@${IP}:/app/ |
|
|
|
} |
|
|
|
|
|
|
|
function do_flashwebapp_to_targetboard() { |
|
|
|
ssh ${TARGET_USER}@${IP} "rm -rf /webapp" |
|
|
|
scp -r ${PROJECT_PATH}/webapp ${TARGET_USER}@${IP}:/app/webapp |
|
|
|
} |
|
|
|
|
|
|
|
############################################################################## |
|
|
@ -47,11 +59,15 @@ function do_flash_to_rk3328() { |
|
|
|
|
|
|
|
# 解析指令判断指令是否是 envsetup iflytool.sh envsetup rk3328 |
|
|
|
|
|
|
|
set -e |
|
|
|
|
|
|
|
is_build=false |
|
|
|
is_flash=false |
|
|
|
is_reboot=false |
|
|
|
is_envsetup=false |
|
|
|
|
|
|
|
export PROJECT_PATH=$(pwd) |
|
|
|
|
|
|
|
for i in "$@"; do |
|
|
|
case $i in |
|
|
|
envsetup) |
|
|
@ -76,9 +92,25 @@ for i in "$@"; do |
|
|
|
is_packet=true |
|
|
|
shift |
|
|
|
;; |
|
|
|
ssh_copy_id) |
|
|
|
is_ssh_copy_id=true |
|
|
|
shift |
|
|
|
;; |
|
|
|
ssh_clear_id) |
|
|
|
is_ssh_clear_id=true |
|
|
|
shift |
|
|
|
;; |
|
|
|
flashapp) |
|
|
|
is_flashapp=true |
|
|
|
shift |
|
|
|
;; |
|
|
|
flashwebapp) |
|
|
|
is_flashwebapp=true |
|
|
|
shift |
|
|
|
;; |
|
|
|
--user) |
|
|
|
shift |
|
|
|
USER=$1 |
|
|
|
TARGET_USER=$1 |
|
|
|
shift |
|
|
|
;; |
|
|
|
--ip) |
|
|
@ -113,8 +145,6 @@ if [ "$is_envsetup" = true ]; then |
|
|
|
|
|
|
|
echo "PROJECT_NAME=$PROJECT_NAME" >>${PROJECT_PATH}/build/buildenv |
|
|
|
|
|
|
|
ROOTFS_APP_DIR="/" |
|
|
|
echo "ROOTFS_APP_DIR=$ROOTFS_APP_DIR" >>${PROJECT_PATH}/build/buildenv |
|
|
|
|
|
|
|
if [ "$BUILDFOR" = "pc" ]; then |
|
|
|
do_envsetup_pc |
|
|
@ -127,6 +157,11 @@ if [ "$is_envsetup" = true ]; then |
|
|
|
exit 0 |
|
|
|
fi |
|
|
|
|
|
|
|
# 如果没有指定用户名,则默认用户名为 root |
|
|
|
if [ -z "$TARGET_USER" ]; then |
|
|
|
TARGET_USER=root |
|
|
|
fi |
|
|
|
|
|
|
|
#如果flash 则默认编译打包 |
|
|
|
if [ "$is_flash" = true ]; then |
|
|
|
is_build=true |
|
|
@ -158,54 +193,41 @@ if [ "$is_build" = true ]; then |
|
|
|
echo "build" |
|
|
|
cd ${PROJECT_PATH}/build |
|
|
|
# 根据当前电脑线程数,调用make |
|
|
|
./build.sh && make -j$(nproc) |
|
|
|
./build.sh && make -j$(nproc) install |
|
|
|
fi |
|
|
|
|
|
|
|
# 打包 |
|
|
|
if [ "$is_packet" = true ]; then |
|
|
|
echo "packet for ${BUILDFOR}" |
|
|
|
cd ${PROJECT_PATH} |
|
|
|
${PROJECT_PATH}/sh/packet_${BUILDFOR}.sh |
|
|
|
${PROJECT_PATH}/sh/packet.sh |
|
|
|
fi |
|
|
|
|
|
|
|
# 部署 |
|
|
|
if [ "$is_flash" = true ]; then |
|
|
|
if [ "$BUILDFOR" = "pc" ]; then |
|
|
|
echo "WARNING:not support flash for pc" |
|
|
|
elif [ "$BUILDFOR" = "rk3328" ]; then |
|
|
|
do_flash_to_rk3328 |
|
|
|
else |
|
|
|
echo "unknow build for $BUILDFOR" |
|
|
|
exit 1 |
|
|
|
do_flash_to_targetboard |
|
|
|
fi |
|
|
|
|
|
|
|
# flashapp |
|
|
|
if [ "$is_flashapp" = true ]; then |
|
|
|
do_flashapp_to_targetboard |
|
|
|
fi |
|
|
|
|
|
|
|
# flashwebapp |
|
|
|
if [ "$is_flashwebapp" = true ]; then |
|
|
|
do_flashwebapp_to_targetboard |
|
|
|
fi |
|
|
|
# 重启 |
|
|
|
if [ "$is_reboot" = true ]; then |
|
|
|
if [ "$BUILDFOR" = "pc" ]; then |
|
|
|
echo "WARNING:not support reboot for pc" |
|
|
|
elif [ "$BUILDFOR" = "rk3328" ]; then |
|
|
|
ssh ${USER}@${IP} "reboot" |
|
|
|
else |
|
|
|
echo "unknow build for $BUILDFOR" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
ssh ${TARGET_USER}@${IP} "reboot" |
|
|
|
fi |
|
|
|
|
|
|
|
#ssh_copy_id |
|
|
|
if [ "ssh_copy_id" = true ]; then |
|
|
|
if [ "$BUILDFOR" = "pc" ]; then |
|
|
|
echo "WARNING:not support ssh_copy_id for pc" |
|
|
|
elif [ "$BUILDFOR" = "rk3328" ]; then |
|
|
|
ssh-copy-id ${USER}@${IP} |
|
|
|
else |
|
|
|
echo "unknow build for $BUILDFOR" |
|
|
|
exit 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if [ "$is_ssh_copy_id" = true ]; then |
|
|
|
ssh-copy-id ${TARGET_USER}@${IP} |
|
|
|
fi |
|
|
|
|
|
|
|
#ssh_clear_id |
|
|
|
if [ "ssh_clear_id" = true ]; then |
|
|
|
ssh ${USER}@${ip} "rm -rf ~/.ssh/authorized_keys" |
|
|
|
if [ "$is_ssh_clear_id" = true ]; then |
|
|
|
ssh ${TARGET_USER}@${ip} "rm -rf ~/.ssh/authorized_keys" |
|
|
|
fi |