#!/bin/bash # check-self-build-packages.sh (testing) # This script uses to check self-build packages in your system. export LC_MESSAGES=C export LC_TIME=C # Get a same screen width, and default to 80 when exact info not available [ -z "${COLUMNS:-}" ] && COLUMNS=`stty -a 2>/dev/null | sed -n 's/.*columns \([0-9]*\);.*/\1/p'` [ -z "${COLUMNS:-}" ] && COLUMNS=80 RES_COL=$((COLUMNS - 15)) MOVE_TO_COL="echo -en \\033[${RES_COL}G" echo_success(){ ${MOVE_TO_COL} echo -e "[ \033[1;32mOK\033[0m ]" return 0 } echo_failure(){ ${MOVE_TO_COL} echo -e "[ \033[1;31mFail\033[0m ]" return 1 } show-host-info(){ cat</dev/null) for i in $LIST_PKGS; do _basename=$(basename $i) _specfile_basename=$(basename $i | sed s/self-build-//) if [ -f ${i}/${_specfile_basename}-vl${DIST_RELEASE}.spec ]; then _specfile=${i}/${_specfile_basename}-vl${DIST_RELEASE}.spec elif [ -f ${i}/${_specfile_basename}-vl.spec ]; then _specfile=${i}/${_specfile_basename}-vl.spec else _specfile=${i}/${_specfile_basename}.spec fi echo -ne "\033[1;34m$_basename\033[0m: " rpm -q $_basename if [ ! -f $_specfile ]; then echo "E: no found $_specfile" LIST_ERROR_PKGS="${LIST_ERROR_PKGS} $_basename" continue fi _build_pkgs=$(rpm -q --specfile $_specfile) for j in $_build_pkgs; do ##!!IRREGULAR: libdvdcss if [ ! -z "$(echo $j | grep "libdvdcss-")" ]; then continue fi echo -e -n "\t$j:\t" rpm -q --quiet $j if [ $? -eq 0 ]; then echo_success else [ -z "$(echo ${LIST_RECOMMEND_REBUILD_PKGS} | grep $_basename)" ] && \ LIST_RECOMMEND_REBUILD_PKGS="${LIST_RECOMMEND_REBUILD_PKGS} $_basename" LIST_NO_INSTALLED_BUILD_PKGS="${LIST_NO_INSTALLED_BUILD_PKGS} $j" echo_failure rpm -q --quiet $_specfile_basename [ $? -eq 0 ] && \ echo "W: $(rpm -q $_specfile_basename) has installed" continue 1 fi done done # echo LIST_ERROR_PKGS: $LIST_ERROR_PKGS # echo LIST_RECOMMEND_REBUILD_PKGS: $LIST_RECOMMEND_REBUILD_PKGS # echo LIST_NO_INSTALLED_BUILD_PKGS: $LIST_NO_INSTALLED_BUILD_PKGS show-summary exit