This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: installing packages using setup.exe from the command line (e.g., remotely)


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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]