#!/bin/sh
# extract pkg version  
# trying to get pkg version from a package
# this will work for something like
# aaa-1-i386-1.tgz
# aaa-1.2-i386-1.tgz
# aaa-1.2-patched-i386-1.tgz
# aaa-bbb-1.2-i386-1.tgz
# aaa-bbb-100dpi-1.2-i386-1.tgz
# aaa-bbb-20000101-i386-1.tgz
# aaa-bbb-2000_01_01-i386-1.tgz
# aaa-IIIbeta2-i386-1.tgz
#
# BUT BROKEN for this
# aaa-1.2-333-i386-1.tgz
#
# (c) 2004, Eko M. Budi
# License: GNU GPL

if [ -z "$1" ]; then
cat << _EOF_
pkgversion - print the version portion of a Slackware package.
Usage: pkgname <full_package_name>

Example:
pkgname aaa-bbb-1.2.3-i486-1.tgz
_EOF_
exit 1
fi


## Take out name
name=`pkgname $1`
ver_rest=${1#$name-}
ver=${ver_rest%%-*}
ver_rest=${ver_rest#$ver-}
while [ "$ver_rest" ]; do
   case `echo $ver_rest | cut -f1 -d-` in
      noarch|i386|i486|i586|i686|i786|i886|i986|x86_64)
        break
      ;;
   esac
   extra=${ver_rest%%-*}
   ver_rest=${ver_rest#$extra-}
   if [ "$ver_rest" = "$extra" ]; then
      break
   fi
   ver="${ver}-${extra}"
done
echo $ver
 
