--- /dev/null
+#!/bin/bash
+#set -e
+version=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/fs
+
+
+
+if ! [ "$1" = "" ]
+then
+
+version=$1
+
+fi
+echo $version
+
+BACKUPDIR_HOME=$HOMEDIR/../PATCHES/$(basename $HOMEDIR)_FSOTA_${DATE}
+
+
+genpatch() {
+TARGETDIR=$1
+tmpfile_changelist=/$TMPDIR/changelist.txt
+tmpfile_removedfiles=/$TMPDIR/deletedfiles.sh
+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/
+
+rm -rf $TMPDIR
+mkdir -p $TMPDIR
+cd $TARGETDIR/$FSDATADIR
+git config core.filemode false
+git diff $version --name-status . |awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;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
+
+ git diff $version --name-status . |awk ' ($1 != "D" ) {print $2 }'|awk '{gsub(/code\/sdk\/build\/config\/target_config\/brandy\/mk_fs_image\/fd230\/fs\//,"") ;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\/fs\//,"") ;print $0 }' >$tmpfile_removedfiles
+
+ mkdir -p $BACKUPDIR
+ mkdir -p $BACKUPDIR_DIFF
+ mv $tmpfile_git_commit_file $BACKUPDIR_DIFF
+
+ if ! [ $(wc -l $tmpfile_modified_or_new_files|awk '{print $1}' ) == "0" ] ; then
+ mv $tmpfile_modified_or_new_files $BACKUPDIR_DIFF
+ cat $BACKUPDIR_DIFF/$(basename $tmpfile_modified_or_new_files)|xargs tar czf $BACKUPDIR/changefiles.tar.gz
+ tar xzf $BACKUPDIR/changefiles.tar.gz -C $BACKUPDIR
+ rm $BACKUPDIR/changefiles.tar.gz
+ else
+ echo $tmpfile_modified_or_new_files $(wc -l $tmpfile_modified_or_new_files |awk '{print $1}') , skip copy.
+ fi
+
+ if ! [ $(wc -l $tmpfile_removedfiles|awk '{print $1}') == "0" ] ; then
+ mv $tmpfile_removedfiles $BACKUPDIR_DIFF
+ else
+ echo $tmpfile_removedfiles $(wc -l $tmpfile_removedfiles|awk '{print $1}') , skip copy.
+ fi
+fi
+cd $HOMEDIR
+
+}
+
+genpatch $PWD
+echo done
+
+
+