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
|