Script to highlight state of patches in tree
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>
This commit is contained in:
parent
e305d0ddd7
commit
14ee8bf7eb
113
scripts/check-patchlist.sh
Executable file
113
scripts/check-patchlist.sh
Executable file
@ -0,0 +1,113 @@
|
||||
#! /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
|
Loading…
Reference in New Issue
Block a user