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

Revision 790, 2.9 KB checked in by munepi, 14 years ago (diff)

updated 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.4 2010/04/10 09:21:53 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
71LIST_PKGS=$(ls -d /usr/share/self-build-* 2>/dev/null)
72
73for i in $LIST_PKGS; do
74    _basename=$(basename $i)
75    _specfile_basename=$(basename $i | sed s/self-build-//)
76    [ -f ${i}/${_specfile_basename}-vl.spec ] && \
77        _specfile=${i}/${_specfile_basename}-vl.spec || \
78        _specfile=${i}/${_specfile_basename}.spec
79
80    echo -n "$_basename: "
81    rpm -q $_basename
82
83    if [ ! -f $_specfile ]; then
84        echo "E: no found $_specfile"
85        LIST_ERROR_PKGS="${LIST_ERROR_PKGS} $_basename"
86        continue
87    fi
88    _build_pkgs=$(rpm -q --specfile $_specfile)
89    for j in $_build_pkgs; do
90        ##!!IRREGULAR: libdvdcss
91        if [ ! -z "$(echo $j | grep "libdvdcss-")" ]; then
92            continue
93        fi
94
95        echo -e -n "\t$j:\t"
96        rpm -q --quiet $j
97        if [ $? -eq 0 ]; then
98            success
99        else
100            [ -z "$(echo ${LIST_RECOMMEND_REBUILD_PKGS} | grep $_basename)" ] && \
101                LIST_RECOMMEND_REBUILD_PKGS="${LIST_RECOMMEND_REBUILD_PKGS} $_basename"
102            LIST_NO_INSTALLED_BUILD_PKGS="${LIST_NO_INSTALLED_BUILD_PKGS} $j"
103            fail
104
105            rpm -q --quiet $_specfile_basename
106            [ $? -eq 0 ] && \
107                echo "W: $(rpm -q $_specfile_basename) has installed"
108            continue 1
109        fi
110    done
111
112done
113
114# echo LIST_ERROR_PKGS: $LIST_ERROR_PKGS
115# echo LIST_RECOMMEND_REBUILD_PKGS: $LIST_RECOMMEND_REBUILD_PKGS
116# echo LIST_NO_INSTALLED_BUILD_PKGS: $LIST_NO_INSTALLED_BUILD_PKGS
117show-summary
118
119exit
Note: See TracBrowser for help on using the repository browser.