Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <017301c48638$5a0d05f0$78d96f83@robinson.cam.ac.uk> From: "Max Bowsher" To: , "Christopher Cobb" References: <00c801c4860a$adcd62d0$78d96f83 AT robinson DOT cam DOT ac DOT uk> Subject: Re: installing packages using setup.exe from the command line (e.g., remotely) Date: Thu, 19 Aug 2004 22:58:36 +0100 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Cam-ScannerInfo: http://www.cam.ac.uk/cs/email/scanner/ X-Cam-AntiVirus: No virus found X-Cam-SpamDetails: Not scanned X-IsSubscribed: yes Note-from-DJ: This may be spam Christopher Cobb wrote: > Max Bowsher 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/