blob: fc5b1fd67b0355c819fb78a00452de7b9e138706 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
#/bin/bash
### ABB tag is the 256-bit number
MAPPING_FILE=/opt/share/bb/mapping-bb-rs.xml
function make_abb_tag () {
DIVISOR=64
ABB_TAG_0="0"
ABB_TAG_1="0"
ABB_TAG_2="0"
ABB_TAG_3="0"
for ABB_ID in $ABB_ID_LIST
do
RESULT=$(($ABB_ID / $DIVISOR))
REMAINDER=$(($ABB_ID % $DIVISOR))
case $RESULT in
0)
ABB_TAG_0=$(($ABB_TAG_0 | (1 << $REMAINDER)))
;;
1)
ABB_TAG_1=$(($ABB_TAG_1 | (1 << $REMAINDER)))
;;
2)
ABB_TAG_2=$(($ABB_TAG_2 | (1 << $REMAINDER)))
;;
3)
ABB_TAG_3=$(($ABB_TAG_3 | (1 << $REMAINDER)))
;;
esac
done
ABB_TAG=`printf "%016X%016X%016X%016X" $ABB_TAG_3 $ABB_TAG_2 $ABB_TAG_1 $ABB_TAG_0`
retval=$ABB_TAG
}
function get_abb_id () {
BB=$1
grep -q $BB $MAPPING_FILE
if [ $? == 0 ]
then
ABB_ID=`grep "\"$BB\"" $MAPPING_FILE | awk '{print $3}' | sed -e "s/abb_id=\"\(.\+\)\".\+/\1/"`
retval="$ABB_ID"
else
retval="X"
fi
}
function usage () {
echo "Usage : make_ABB_tag.sh <mapping_file> [building block list file]"
echo " If you input building block list, this program uses it."
echo " Or this program uses the rpm db on the target"
exit 1
}
##################
## main ##
##################
case $# in
1)
MAPPING_FILE=$1
if [ ! -e $MAPPING_FILE ]
then
echo "File not found : $MAPPING_FILE"
exit 2
fi
ABB_LIST=`rpm -qa --queryformat="%{NAME}\n"| grep building-blocks- | grep domain_API`
;;
2)
MAPPING_FILE=$1
if [ ! -e $MAPPING_FILE ]
then
echo "File not found : $MAPPING_FILE"
exit 2
fi
if [ ! -e $2 ]
then
echo "File not found : $2"
exit 3
fi
ABB_LIST=`cat $2`
;;
*)
echo "##################"
echo "Please check input"
echo "##################"
usage
esac
ABB_ID_LIST=""
for API in $ABB_LIST
do
# echo $API
get_abb_id $API
if [ "$retval" != "X" ]
then
ABB_ID_LIST="$ABB_ID_LIST $retval"
fi
done
make_abb_tag $ABB_ID_LIST
echo $retval
|