source: people/munepi/scripts/check-self-build-packages.sh @ 2349

Revision 2349, 3.2 KB checked in by munepi, 13 years ago (diff)

fixed check-self-build-packages.sh

  • Property svn:executable set to *
Line 
1#!/bin/bash
2# check-self-build-packages.sh (testing)
3#       $Id: check-self-build-packages.sh,v 1.6 2010/12/15 00:51:09 munepi Exp $       
4#
5# This script uses to check self-build packages in your system.
6
7success(){
8    echo -e "\033[1;32mOK\033[0m"
9    return 0
10}
11
12fail(){
13    echo -e "\033[1;31mFail\033[0m"
14    return 1
15}
16
17show-host-info(){
18    cat<<EOF
19======================================================================
20  SELF-BUILD SYSTEM REPORT
21        DATE:           $(LANG=C date)
22        HOSTNAME:       $(hostname)
23        OS:             $(cat /etc/vine-release)
24        KERNEL:         $(uname -a)
25        %_arch:         $(rpm --eval %_arch)
26======================================================================
27
28EOF
29}
30
31show-summary(){
32    cat<<EOF
33
34======================================================================
35  SUMMARY
36EOF
37    if [ -z "$LIST_ERROR_PKGS" -a -z "$LIST_RECOMMEND_REBUILD_PKGS" -a -z "$LIST_NO_INSTALLED_BUILD_PKGS" ]; then
38        cat<<EOF
39All self-build packages in your system have successfully been installed.
40======================================================================
41EOF
42        return 0
43    fi
44
45    [ ! -z "$LIST_ERROR_PKGS" ] && \
46        cat<<EOF
47W: The following packages may have some errors:
48$LIST_ERROR_PKGS
49EOF
50    [ ! -z "$LIST_NO_INSTALLED_BUILD_PKGS" ] && \
51        cat<<EOF
52E: No one of the following packages have been installed:
53$LIST_NO_INSTALLED_BUILD_PKGS
54EOF
55    [ ! -z "$LIST_RECOMMEND_REBUILD_PKGS" ] && \
56        cat<<EOF
57RECOMMEND: You should rebuild the following packages:
58$LIST_RECOMMEND_REBUILD_PKGS
59EOF
60
61        cat<<EOF
62======================================================================
63EOF
64        return 1
65}
66
67######################################################################
68
69show-host-info
70
71DIST_RELEASE=$(cat ${BUILD_ROOT}/etc/vine-release | cut -f3 -d" " | cut -f1 -d.)
72LIST_PKGS=$(ls -d /usr/share/self-build-* 2>/dev/null)
73
74for i in $LIST_PKGS; do
75    _basename=$(basename $i)
76    _specfile_basename=$(basename $i | sed s/self-build-//)
77    if [ -f ${i}/${_specfile_basename}-vl${DIST_RELEASE}.spec ]; then
78        _specfile=${i}/${_specfile_basename}-vl${DIST_RELEASE}.spec
79    elif [ -f ${i}/${_specfile_basename}-vl.spec ]; then
80        _specfile=${i}/${_specfile_basename}-vl.spec
81    else
82        _specfile=${i}/${_specfile_basename}.spec
83    fi
84
85    echo -n "$_basename: "
86    rpm -q $_basename
87
88    if [ ! -f $_specfile ]; then
89        echo "E: no found $_specfile"
90        LIST_ERROR_PKGS="${LIST_ERROR_PKGS} $_basename"
91        continue
92    fi
93    _build_pkgs=$(rpm -q --specfile $_specfile)
94    for j in $_build_pkgs; do
95        ##!!IRREGULAR: libdvdcss
96        if [ ! -z "$(echo $j | grep "libdvdcss-")" ]; then
97            continue
98        fi
99
100        echo -e -n "\t$j:\t"
101        rpm -q --quiet $j
102        if [ $? -eq 0 ]; then
103            success
104        else
105            [ -z "$(echo ${LIST_RECOMMEND_REBUILD_PKGS} | grep $_basename)" ] && \
106                LIST_RECOMMEND_REBUILD_PKGS="${LIST_RECOMMEND_REBUILD_PKGS} $_basename"
107            LIST_NO_INSTALLED_BUILD_PKGS="${LIST_NO_INSTALLED_BUILD_PKGS} $j"
108            fail
109
110            rpm -q --quiet $_specfile_basename
111            [ $? -eq 0 ] && \
112                echo "W: $(rpm -q $_specfile_basename) has installed"
113            continue 1
114        fi
115    done
116
117done
118
119# echo LIST_ERROR_PKGS: $LIST_ERROR_PKGS
120# echo LIST_RECOMMEND_REBUILD_PKGS: $LIST_RECOMMEND_REBUILD_PKGS
121# echo LIST_NO_INSTALLED_BUILD_PKGS: $LIST_NO_INSTALLED_BUILD_PKGS
122show-summary
123
124exit
Note: See TracBrowser for help on using the repository browser.