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

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