forked from rpms/kernel
		
	The intent for this script is to make easier patch management and documentation. [labbott: Tweak help text] Signed-off-by: Miguel Flores Silverio <floresmigu3l@gmail.com>
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #! /bin/sh
 | |
| # This script was created in a effort to make patch management a bit easier.
 | |
| # It list all the patches in the current tree and identifies if they are
 | |
| # present in the kernel.spec, PatchList.txt, both files or neither.
 | |
| #
 | |
| # eg. ./check-patchlist.sh [optional flag]
 | |
| 
 | |
| function usage(){
 | |
|     echo "List all the patches currently in the tree. It also helps identify"
 | |
|     echo "if the patch is present in kernel.spec or PatchList.txt.          "
 | |
|     echo "-h, --help                                                        "
 | |
|     echo "-t, --tracked       patches in both kernel.spec and PatchList.txt "
 | |
|     echo "-p, --patchlist     patches added to PatchList.txt.               "
 | |
|     echo "-s, --specfile      patches added to kernel.spec.                 "
 | |
|     echo "-n, --not-tracked   patches in the tree but not  in PatchList.txt "
 | |
|     echo "                     or kernel.spec                               "
 | |
| }
 | |
| 
 | |
| BASEDIR=$(dirname "$( cd $(dirname $BASH_SOURCE[0]) && pwd)")
 | |
| pushd $BASEDIR > /dev/null
 | |
| 
 | |
| function list_all(){
 | |
|     echo "===========Legend==========================="
 | |
|     echo ".   In kernel.spec                          "
 | |
|     echo "*   In PatchList.txt                        "
 | |
|     echo "+   In PatchList.txt & Kernel.spec          "
 | |
|     echo "-   Neither in PatchList.txt nor kernel.spec"
 | |
|     echo "============================================"
 | |
|     for patch in $(ls *.patch); do
 | |
| 	if [ ! -z "$(grep $patch PatchList.txt)" ] && [ ! -z "$(grep $patch kernel.spec)" ]
 | |
| 	then
 | |
| 	    echo "+ ${patch}" # Patches in kernel.spec and PatchList.txt
 | |
| 
 | |
| 	elif [ ! -z "$(grep $patch PatchList.txt)" ] && [ -z "$(grep $patch kernel.spec)" ]
 | |
| 	then
 | |
| 	     echo "* ${patch}" # Patches in PatchList.txt but not in kernel.spec
 | |
| 
 | |
| 	elif [ -z "$(grep $patch PatchList.txt)" ] && [ ! -z "$(grep $patch kernel.spec)" ]
 | |
| 	then
 | |
| 	    echo ". ${patch}" # Patches in kernel.spec but not in PatchList.txt
 | |
| 
 | |
| 	else
 | |
| 	    echo "- ${patch}" # Neither in PatchList.txt nor kernel.spec
 | |
| 
 | |
| 	fi
 | |
|     done
 | |
| }
 | |
| 
 | |
| function list_present_not_added(){
 | |
|     for patch in $(ls *.patch); do
 | |
| 	if [ -z "$(grep $patch PatchList.txt)" ] && [ -z "$(grep $patch kernel.spec)" ]
 | |
| 	then
 | |
| 	    echo $patch
 | |
| 	fi
 | |
|     done
 | |
| }
 | |
| 
 | |
| function list_present_added(){
 | |
|     for patch in $(ls *.patch); do
 | |
| 	if [ ! -z "$(grep $patch PatchList.txt)" ] && [ ! -z "$(grep $patch kernel.spec)" ]
 | |
| 	then
 | |
| 	    echo $patch
 | |
| 	fi
 | |
|     done
 | |
| }
 | |
| 
 | |
| function list_patchList(){
 | |
|     for patch in $(ls *.patch); do
 | |
| 	if [ ! -z "$(grep $patch PatchList.txt)" ] && [ -z "$(grep $patch kernel.spec)" ]
 | |
| 	then
 | |
| 	    echo $patch
 | |
| 	fi
 | |
|     done
 | |
| 
 | |
| }
 | |
| function list_specfile(){
 | |
|     for patch in $(ls *.patch); do
 | |
| 	if [ -z "$(grep $patch PatchList.txt)" ] && [ ! -z "$(grep $patch kernel.spec)" ]
 | |
| 	then
 | |
| 	    echo $patch
 | |
| 	fi
 | |
|     done
 | |
| }
 | |
| 
 | |
| if [ -z "$@" ]; then
 | |
|     list_all
 | |
| else
 | |
| 
 | |
|     for opt in "$@"; do
 | |
| 	case $opt in
 | |
| 	    -t|--tracked)
 | |
| 		list_present_added
 | |
| 		;;
 | |
| 	    -s|--specfile)
 | |
| 		list_specfile
 | |
| 		;;
 | |
| 	    -h|--help)
 | |
| 		usage
 | |
| 		;;
 | |
| 	    -n|--not-added)
 | |
| 		list_present_not_added
 | |
| 		;;
 | |
| 	    -p|--patchlist)
 | |
| 		list_patchList
 | |
| 		;;
 | |
| 	    *)
 | |
| 		usage
 | |
| 		;;
 | |
| 	esac
 | |
|     done
 | |
| fi
 | |
| 
 | |
| popd > /dev/null
 |