delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2007/01/10/21:31:24

X-Spam-Check-By: sourceware.org
From: "Kevin T Cella" <kcella AT nycap DOT rr DOT com>
To: <cygwin AT cygwin DOT com>
References: <000301c733a2$28c29db0$7a47d910$@rr.com> <Pine DOT GSO DOT 4 DOT 63 DOT 0701100857580 DOT 6616 AT access1 DOT cims DOT nyu DOT edu>
In-Reply-To: <Pine.GSO.4.63.0701100857580.6616@access1.cims.nyu.edu>
Subject: RE: activestate perl on cygwin
Date: Wed, 10 Jan 2007 21:29:37 -0500
Message-ID: <006901c73528$574b11d0$05e13570$@rr.com>
MIME-Version: 1.0
X-Mailer: Microsoft Office Outlook 12.0
x-cr-hashedpuzzle: AQcJ BNN2 BQtS BgKd ClcF Cs7u DBCJ EeU3 GMXc HNyX Hp0k IN+J IZJO Iciw JNjj LBOw;1;YwB5AGcAdwBpAG4AQABjAHkAZwB3AGkAbgAuAGMAbwBtAA==;Sosha1_v1;7;{348DBDC1-0ABF-4C78-8A3D-C716E9685157};awBjAGUAbABsAGEAQABuAHkAYwBhAHAALgByAHIALgBjAG8AbQA=;Thu, 11 Jan 2007 02:29:27 GMT;UgBFADoAIABhAGMAdABpAHYAZQBzAHQAYQB0AGUAIABwAGUAcgBsACAAbwBuACAAYwB5AGcAdwBpAG4A
x-cr-puzzleid: {348DBDC1-0ABF-4C78-8A3D-C716E9685157}
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

Offer an alternative. As I mentioned in my original post, I got this script
online. In using it I found it was not sufficient, I started this thread in
the hopes that someone would provide me with a better wrapper script.
Instead I got a bunch of replies about how it is a bad idea to use
Activestate with cygwin. My scripts are written to make my life on Windows
easier, so that means using Windows specific code to automate common tasks.
Ideally I'd prefer to stay in a pure Linux environment, but for reasons I do
not need to go into, I am stuck with Windows. It was my understanding that
the intent of this mailing list was to offer a place to discuss issues
involving cygwin and develop solutions to those problems. Seeing as I do not
have a whole lot of free time to research a better solution, I hoped a quick
answer would be provided via this medium. While I appreciate the suggestions
that have been made on this thread, I want to install two copies of the perl
interpreter or port my existing scripts to cygwin as that appears to be the
compromise. Are there any other ideas?

-----Original Message-----
From: cygwin-owner AT cygwin DOT com [mailto:cygwin-owner AT cygwin DOT com] On Behalf Of
Igor Peshansky
Sent: Wednesday, January 10, 2007 9:06 AM
To: Kevin T Cella
Cc: cygwin AT cygwin DOT com
Subject: Re: activestate perl on cygwin

On Mon, 8 Jan 2007, Kevin T Cella wrote:

> I understand the trouble with using Activestate perl on cygwin is the
> path conversion problem. Searching online I found the following wrapper
> script useful for most perl commands:
>
> 	#! /bin/sh
>
> 	# This is necessary to make perl work with cygwin.  Cygwin passes
> 	# "cygwin style" paths to the program in the #! statement and
ActiveState
> 	# perl does not know what /cygwin/d/... means.
> 	#
> 	# So, we put #!/usr/local/bin/perl in the perl script and this is
called
> 	# This routine translates the path name to something of type d:/
> 	#
> 	args=""
> 	while [ $# -gt 0 ]
> 	do
> 	    var="$1"
> 	    shift
>
> 	    if test "`echo $var | grep '/'`" = "$var"
> 	    then
> 	        # cygpath does the /cygwin/d/ to d:/ conversion
> 	        var=`cygpath -w $var`
>
> 	        # Then we have to swap \ for / (extra \ needed because the
> 	        # shell makes a first pass at removing the \.
>       	  #
> 	        var=`echo "$var" | sed 's/\\\/\\//g'`
> 	    fi
> 	    args="$args $var"
> 	done
>
> 	# Finally the command is to call perl with the name of the script
and the args.
> 	#
> 	/c/Perl/bin/perl.exe $args
>
> An example of one that does not work is as follows:
>
> 	perl -e 'print join "\n", @INC, "\n";'
>
> For some reason, the script above strips the single quotes from the
> command and therefore does not execute the command properly. Please
> advise.

The reason the script above strips the single quotes from the command is
because it's buggy.  Not only that, it'll be pretty slow, as it'll spawn a
'test' and a 'sed' for every argument.  And, judging from the comments,
its intended purpose is to allow invoking perl with a script filename, not
with a literal script.  Oh, and there's a typo in the comment --
"/cygwin/d" should be "/cygdrive/d".

However, none of these issues are Cygwin-specific (with a possible
exceptions of the typo and using "cygpath -m" instead of "cygpath -w" to
save yourself the trouble of the extra backslash translation).  Any good
tutorial on bash should show you how to properly quote the arguments.
You may also want to search the Cygwin list archives, where this exact
issue comes up once in a while (usually in the context of paths with
spaces).
HTH,
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_	    pechtcha AT cs DOT nyu DOT edu |
igor AT watson DOT ibm DOT com
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name
changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

Freedom is just another word for "nothing left to lose"...  -- Janis Joplin

--
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/


--
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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019