ota包制作脚本自动添加fs data 打包
authorSnickerSun <snickersun@163.com>
Thu, 25 Apr 2024 14:48:36 +0000 (22:48 +0800)
committerSnickerSun <snickersun@163.com>
Thu, 25 Apr 2024 14:48:36 +0000 (22:48 +0800)
code/sdk/build/config/target_config/brandy/build_brandy_update.py
gen_fs_otapkg.sh
mkota.sh

index 42ad65c..234c7d3 100755 (executable)
@@ -59,7 +59,11 @@ class upg_base_info:
         self.res_dir          = os.path.join(self.output, "res_file") #待打包目录路径, 如果仅删除则填None,此时是打包res_file目录下的所有文件
         self.res_index        = os.path.join(self.output, "res_index.bin") #生成的索引文件路径
         self.res_data         = os.path.join(self.output, "res_data.bin") #生成的数据文件路径, 仅删除时此参数无效
-        self.res_delfile      = [] # [ "/user/exc/exc_info.bin"] #待删除文件列表,删除/user/exc/目录下的exc_info.bin文件
+        if os.path.exists(os.path.join(self.output,"delfiles")) :
+            with open(os.path.join(self.output,"delfiles"),"r") as file:
+                self.res_delfile = file.readlines() # [ "/user/exc/exc_info.bin"] #待删除文件列表,删除/user/exc/目录下的exc_info.bin文件
+        else:
+            self.res_delfile      = [] # [ "/user/exc/exc_info.bin"] #待删除文件列表,删除/user/exc/目录下的exc_info.bin文件
         # self.res_delfile      = [ "/user/exc/exc_info.bin"] #待删除文件列表,删除/user/exc/目录下的exc_info.bin文件
         self.res_rmdir        = [] # ["/user/test","/user/test1"]  #删除/user/test/,/user/test1两个目录
 
index f71684d..17ad194 100644 (file)
@@ -1,48 +1,58 @@
 #!/bin/bash
 #set -e
-version=HEAD
+NEWVERSION=HEAD
+OLDVERSION=HEAD
 DATE=$(date  +%Y%m%d.%H%M%S)
-HOMEDIR=$PWD
-TMPDIR=/tmp/${USER}_${DATE}
 FSDATADIR=code/sdk/build/config/target_config/brandy/mk_fs_image/fd230
 
 
-
 if ! [ "$1" = "" ] 
 then
+OLDVERSION=$1
+fi
 
-version=$1
+if ! [ "$2" = "" ] 
+then
+NEWVERSION=$2
+fi
 
+if ! [ "$3" = "" ] 
+then
+DATE=$3
 fi
-echo $version
+
+HOMEDIR=$PWD
+TMPDIR=/tmp/${USER}_${DATE}
+
+echo get diff $OLDVERSION ... $NEWVERSION to $TMPDIR
 
 BACKUPDIR_HOME=$HOMEDIR/../PATCHES/$(basename $HOMEDIR)_FSOTA_${DATE}
 
 
 genpatch() {
-TARGETDIR=$1
 tmpfile_changelist=/$TMPDIR/changelist.txt
-tmpfile_removedfiles=/$TMPDIR/deletedfiles.sh
+tmpfile_removedfiles=/$TMPDIR/deletedfiles.txt
 tmpfile_modified_or_new_files=/$TMPDIR/modified_or_new_files.txt
 tmpfile_git_commit_file=/$TMPDIR/commit.txt
 BACKUPDIR=$BACKUPDIR_HOME/
 BACKUPDIR_DIFF=$BACKUPDIR_HOME/diff/
+TARGETDIR=$1/$FSDATADIR
 
 rm -rf $TMPDIR
 mkdir -p $TMPDIR
-cd $TARGETDIR/$FSDATADIR
+cd $TARGETDIR
 git config core.filemode false
-git diff $version --name-status . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' > $tmpfile_changelist
+git diff ${OLDVERSION}...${NEWVERSION} --name-status . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' > $tmpfile_changelist
 export count=`wc $tmpfile_changelist -l|awk '{print $1}'`
 echo $TARGETDIR $count
 if [ "$count" == "0" ] ; then
        echo $TARGETDIR no change
 else
        
-       echo $version >$tmpfile_git_commit_file
+       echo ${OLDVERSION}...${NEWVERSION} >$tmpfile_git_commit_file
 
-       git diff $version --name-status . |awk ' ($1 != "D" ) {print $2 }'|awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' >$tmpfile_modified_or_new_files
-       git diff $version --name-status . |awk ' ($1 == "D" ) {print $2 }'|awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' >$tmpfile_removedfiles
+       git diff ${OLDVERSION}...${NEWVERSION} --name-only --diff-filter=ACMR . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' >$tmpfile_modified_or_new_files
+       git diff ${OLDVERSION}...${NEWVERSION} --name-only --diff-filter=D . |awk ' ($1 == "D" ) {print $2 }'|awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\//,"") ;print $0 }' >$tmpfile_removedfiles
 
        mkdir -p $BACKUPDIR
        mkdir -p $BACKUPDIR_DIFF
index 5382fb6..82ac5b7 100644 (file)
--- a/mkota.sh
+++ b/mkota.sh
@@ -24,10 +24,24 @@ rm -rf code/sdk/output/brandy/TestOTA/*
 cp -r $SOURCE_DIR  code/sdk/output/brandy/TestOTA/oldsoftware
 cp -r $TARGET_DIR  code/sdk/output/brandy/TestOTA/newsoftware
 
+
+OLD_COMMIT_VERSION=`cat  code/sdk/output/brandy/TestOTA/oldsoftware/readme.txt | awk '$1 == "commit" { print $2}'`
+NEW_COMMIT_VERSION=`cat  code/sdk/output/brandy/TestOTA/newsoftware/readme.txt | awk '$1 == "commit" { print $2}'`
+
+TMPDIR=/tmp/${USER}_F
+rm -rf $TMPDIR
+echo ./gen_fs_otapkg.sh $OLD_COMMIT_VERSION $NEW_COMMIT_VERSION F
+./gen_fs_otapkg.sh $OLD_COMMIT_VERSION $NEW_COMMIT_VERSION F
+if [ -d "$TMPDIR" ] ; then
+RES_DIR=$TMPDIR
+fi
+
 if [ -d "$RES_DIR" ] ; then
 cp -r $RES_DIR/fs code/sdk/output/brandy/TestOTA/res_file
+cp -f $RES_DIR/diff/deletedfiles.txt code/sdk/output/brandy/TestOTA/delfiles
 fi
 
+
 cd code/sdk/
 ./build/config/target_config/brandy/build_brandy_update.py
 cd -