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两个目录
#!/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
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 -