#!/bin/sh #*************************************************************************** #time : 2024-10-09 #author: wuquanwei #功能 : 打包升级文件,将脚本和升级包打包在一起,做成脚本文件,直接执行即可升级 #*************************************************************************** if [ $# -lt 2 ] then printf "Usage: ./package.sh \n" exit 1 fi #*************************************************************************** TARGET_DIR=$1 time=`date '+%Y%m%d'` name=IGD5300-v4-$time-v$2".sh" #*************************************************************************** #head是升级包的头部脚本 #*************************************************************************** head="#!/bin/sh\n\n touch /tmp/fzzy_upgrade\n\n payload_offset=\$((\$(grep -na -m1 \"^MARKER:\$\" \$0|cut -d':' -f1) + 1));\n printf \"Extracting upgrade file...\\n\"\n tail -n +\$payload_offset \$0| tar xvzf - -C ./ || exit 1\n echo \"Extracting done\\n\"\n\n printf \"start upgrade...\\n\"\n cd $TARGET_DIR/\n\n if [ -f upgrade.sh ] \n then \n \tsh upgrade.sh\n \tif [ $? -eq 0 ]\n \tthen\n \t\t printf \"upgrade done.\"\n \t\t echo \"success\" > /tmp/fzzy_upgrade\n \telse\n \t\techo \"upgrade fault.\"\n \tfi\n\n else \n echo \"upgrade.sh not found, exit.\" \n exit 1 \n fi\n\n exit 0\n\n " #*************************************************************************** #打包命令 #*************************************************************************** tar cvzf tmp.tgz $TARGET_DIR echo -n $head > $name echo "MARKER:" >> $name cat tmp.tgz >> $name rm tmp.tgz chmod +x $name echo "package done."