#!/bin/bash # Description: This shell script used to generate patch file # Author: guowenxue # Version: 1.0.0 PROJ_PATH=`pwd` PACK_PATH=${PROJ_PATH}/tarballs PATCH_PATH=${PROJ_PATH}/patches BOARD=fl2440 PATCH_SUFFIX=${BOARD}.patch function do_clean() { if [ -f .config ] ; then set -x cp .config .cfg-${BOARD} set +x fi #echo "WARNNING: Maybe need input sudo passwd here: " bash build.sh clean } if [ $# != 1 ] ; then echo "Usage: $0 [src_path]" printf "\nExample: \n" echo "$0 linux-3.0" exit ; fi SRC=`basename $1` if [ ! -d ${SRC} ] ; then printf "\nERROR: ${SRC} source code not exist, exit now\n\n" exit fi if [ ! -f ${PACK_PATH}/${SRC}.tar.bz2 ] ; then printf "\nERROR: ${SRC}.tar.bz2 packet not exist, exit now\n\n" exit fi cd ${PROJ_PATH} cd ${SRC} do_clean cd - # rename new source code mv ${SRC} ${SRC}-${BOARD} # decompress orignal soruce code packet tar -xjf ${PACK_PATH}/${SRC}.tar.bz2 # generate patch file if [[ $SRC =~ linux ]] ; then diff -Nuar -x ".gitignore" ${SRC} ${SRC}-${BOARD} > ${SRC}-${PATCH_SUFFIX} else diff -Nuar ${SRC} ${SRC}-${BOARD} > ${SRC}-${PATCH_SUFFIX} fi # remove orignal soruce code rm -rf ${SRC} # recover new source code mv ${SRC}-${BOARD} ${SRC}