image28

Binary Patch Generator

Jun 25th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.01 KB | None | 0 0
  1. PATCH=~/Desktop/Patcher
  2.  
  3. # Get list of files to add
  4. diff -ra $1 $2 | grep "Only in $2" | sed -e s/"Only in $2\/"/"Add "/ | sed -e s/"Only in $2: "/"Add "/ | sed -e s/": "/"\/"/ > tempout
  5.  
  6. # Get list of files to update
  7. diff -ra $1 $2 | grep "diff -ra" | sed -e s/"diff -ra $1\/"/"Update "/ | awk '{s=0; for (i=1; i<=NF;i++) s=s+1; r=0; for ( e=0;e<(s-1)/2;e++ ) { r=r+1; printf("%s ",$r)} r=r+1; printf("%s\n",$r)}' >> tempout
  8.  
  9. # append filesizes
  10. cd $2
  11.  
  12. "$PATCH/fs" ../tempout
  13.  
  14. cd ..
  15.  
  16. # Get list of files to delete
  17. diff -ra $1 $2 | grep -v "Only in $2" | grep "Only in" | sed -e s/"Only in $1\/"/"Delete "/ | sed -e s/": "/"\/"/ >> tempout2
  18.  
  19. cat tempout2 > update-index
  20. echo END-INDEX >> update-index
  21.  
  22. # Genorate Patch file
  23. cat tempout | sed -e s/"Add "// | sed -e s/"Update "// > filelist
  24. cp "$PATCH/patch" ./patch
  25. cat update-index >> patch
  26. IFS='
  27. '
  28. for d in `cat filelist`
  29. do
  30.     echo Adding "$2/$d" to patch
  31.     cat "$2/$d" >> patch
  32. done
  33.  
  34. # Cleanup
  35. #rm tempout
  36. #rm filelist
  37. #rm tempout2
  38. #rm update-index
Advertisement
Add Comment
Please, Sign In to add comment