Christopher Cobb wrote:
Max Bowsher <maxb <at> ukf.net> writes:
setup isn't really designed for use from the command line. It doesn't
take
package names as arguments, for example. You could, I suppose, munge
/etc/setup/installed.db to fool setup into thinking that a really old
(e.g.
version 0) version of a package is installed, so that it would updated -
it's a messy way to do it, but there is no better way.
Max.
Thanks Max for the idea. Here is a quick hack/shell script which worked
on
the (small handful) of packages that I tried with it.
pkgFileName=`
awk < $SETUP_INI '
/@ / {
pkgName=$2
}
/version: / && pkg == pkgName {
pkgVer=$2
}
/install: / && pkg == pkgName {
num=split($2,arrFile,"/")
pkgFile=arrFile[num]
hyphenOffset=index(pkgFile,"-")
if (hyphenOffset != 0)
{
pkgPrefix=substr(pkgFile, 0, hyphenOffset)
verLength=index(pkgFile,".tar.bz2") - hyphenOffset
ver=substr(pkgFile, hyphenOffset+1, verLength - 1)
pkgSuffix=substr(pkgFile, hyphenOffset + verLength)
pkgFile=pkgPrefix "" gensub(/[0-9]/,"0","g",ver) "" pkgSuffix
print pkgFile
pkgPrinted="true"
exit
}
}
END{
if (pkgPrinted != "true") print pkgFile
}
' pkg=$pkgName
`
Actually, this should suffice:
pkgFileName="$pkgName-0.tar.bz2"
Much shorter! :-)
Max.
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/