blob: 7bfb42e95f9363ab5e658e2503e44a4c901bcf58 (
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
|
#!/bin/bash
die() {
echo "$( basename $0 ): $@" 1>&2
exit 1
}
OUTPUT=${OUTPUT:-/tmp}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
# if no package name, see if we're in a SlackBuild dir.
# if so, install the package for the current dir, if one
# exists in $OUTPUT. Read .info file for version number and
# extract BUILD from the SlackBuild.
if [ -z "$@" ]; then
infofile=$( echo *.info )
[ "$infofile" = '*.info' ] && die "no .info file in current dir"
infofile1=$( echo *.info | cut -d' ' -f1 )
[ "$infofile" != "$infofile1" ] && die "multiple .info files found in current dir"
pkgname=$(basename $infofile .info)
[ ! -e "$pkgname.SlackBuild" ] && die "$pkgname.SlackBuild not found in current dir"
source ./$pkgname.info
[ -z "$PRGNAM" -o -z "$VERSION" ] && die "bad/incomplete .info file, bailing"
[ "$PRGNAM" != "$pkgname" ] && die "bad PRGNAM=$PRGNAM in $pkgname.info"
buildline=$(grep "^ *BUILD=" $pkgname.SlackBuild)
[ -z "$buildline" ] && die "missing BUILD= in $pkgname.SlackBuild"
eval $buildline
for myarch in noarch "$ARCH"; do
myglob="$OUTPUT/$PRGNAM-$VERSION-$myarch-$BUILD*.t?z"
myfile=$( echo $myglob )
if [ "$myglob" = "$myfile" ]; then
: # do naught
elif [ "$( /bin/ls $myfile 2>/dev/null | wc -l )" -gt "1" ]; then
die "Multiple packages match, not installing anything: $( /bin/ls $myfile )"
else
if [ -n "$found" ]; then
die "Multiple packages/arches, not installing anything: $myfile $found"
else
found=$myfile
echo found $found
fi
fi
done
[ -z "$found" ] && die "No $PRGNAM-$VERSION-(noarch|$ARCH)-$BUILD*.t?z package in $OUTPUT, build one!"
set "$found"
fi
sudo upgradepkg --reinstall --install-new "$@"
|