File: mkbiospkg.sh

package info (click to toggle)
libsmbios 2.0.3.dfsg-1.1
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 3,768 kB
  • ctags: 2,016
  • sloc: cpp: 14,292; sh: 9,408; xml: 3,820; makefile: 454; ansic: 402; python: 157
file content (77 lines) | stat: -rwxr-xr-x 1,512 bytes parent folder | download | duplicates (6)
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
#!/bin/sh

set -e

binary=/usr/sbin/dellBiosUpdate
pkgHeader=pkgheader.sh
biosHdr=$1
output=pkg.bin

usage()
{
    echo "mkbiospkg -o OUTPUT_FILE -b BIOS.HDR -p PACKAGE_HEADER"
    echo
}

while getopts "o:b:p:h" Option
do
  case $Option in
      o)
        output=$OPTARG
        ;;
      b)
        biosHdr=$OPTARG
        ;;
      p)
        pkgHeader=$OPTARG
        ;;
      *) 
        usage
        ;;
  esac
done
shift $(($OPTIND - 1))
# Move argument pointer to next.

if [ ! -e "$biosHdr" ]; then
    echo "Require BIOS.HDR to create package."
    exit 1
fi

if [ ! -e "$pkgHeader" ]; then
    echo "Require package header to create package."
    exit 1
fi

libs=$( ldd $binary | grep '=>' | cut -d'>' -f2 | perl -p -i -e 's/\(.*\)//;' )
tmpdir=$(mktemp -d /tmp/mkpkg-XXXXXX)
tempTgz=$(mktemp /tmp/mkpkg-tgz-XXXXXX)
trap 'rm -rf $tmpdir' HUP EXIT QUIT TERM

for file in $libs $binary;
do
    rpm=$(rpm -qf --qf '%{name}-%{version}-%{release}.%{arch}' $file)
    srpm=$(rpm -qi $rpm | grep "Source RPM" | cut -d: -f3 )
    echo "$file  ==>  $srpm" >> $tmpdir/file-srpm-sources.txt
    echo $srpm >> $tmpdir/srpms.txt
done

echo "======================"
echo "SRPM List:"
cat $tmpdir/srpms.txt | sort | uniq > $tmpdir/srpms.txt2
mv $tmpdir/srpms.txt2 $tmpdir/srpms.txt
cat $tmpdir/srpms.txt
echo "======================"
echo 

cp $binary $libs $tmpdir/
cp $biosHdr $tmpdir/bios.hdr

tar czf $tempTgz -C $tmpdir .

cp $pkgHeader $output
cat $tempTgz >> $output

echo "Successfully Created $output"
echo