Mail Archives: cygwin/2011/08/01/03:28:48
X-Recipient: | archive-cygwin AT delorie DOT com
|
X-SWARE-Spam-Status: | No, hits=-0.7 required=5.0 tests=AWL,BAYES_50,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,T_TO_NO_BRKTS_FREEMAIL
|
X-Spam-Check-By: | sourceware.org
|
MIME-Version: | 1.0
|
In-Reply-To: | <80ei15lj87.fsf@somewhere.org>
|
References: | <80hb65b3ue DOT fsf AT somewhere DOT org> <20110729201651 DOT GB13084 AT calimero DOT vinschen DOT de> <1686210011 DOT 20110730161401 AT mtu-net DOT ru> <80ei15lj87 DOT fsf AT somewhere DOT org>
|
Date: | Mon, 1 Aug 2011 09:28:20 +0200
|
Message-ID: | <CAEhDDbDa78rhKX+0kYQu2NCvsJ=1eq2y59tsgOZsCE5AODPRfw@mail.gmail.com>
|
Subject: | Re: Portable shell code between Cygwin and Linux
|
From: | Csaba Raduly <rcsaba AT gmail DOT com>
|
To: | cygwin AT cygwin DOT com
|
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm
|
List-Id: | <cygwin.cygwin.com>
|
List-Unsubscribe: | <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT 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
|
X-MIME-Autoconverted: | from quoted-printable to 8bit by delorie.com id p717SjTO003887
|
On Mon, Aug 1, 2011 at 8:49 AM, Sebastien Vauban wrote:
>
> Hi Andrey,
>
> Andrey Repin wrote:
> >>> For every shell code that I write, I'd like it to be portable both to
> >>> Cygwin on Windows, and to Ubuntu Linux for example.
> >>>
> >>> It's kinda possible, but am blocked with such a use case:
> >>>
> >>> alias vpnup='exec sudo openvpn --config ~/config/client.vpn --writepid /tmp/openvpn.pid &'
> >>>
> >>> While this worked perfectly under Ubuntu, I've had to make up a customized
> >>> version for Windows:
> >>>
> >>> alias vpnupwin='cd c:/home/sva/config; openvpn --config client.vpn --writepid c:/cygwin/tmp/openvpn.pid &'
> >
> >> Don't use Win32 paths. Use POSIX paths:
> >
> >> alias vpnupwin='cd /cygdrive/c/home/sva/config; openvpn --config client.vpn --writepid /cygdrive/c/cygwin/tmp/openvpn.pid &'
> >
> > Moreover, the very first line is wrong.
> >
> > Must be
> >
> > alias vpnup='exec sudo openvpn --config $HOME/config/client.vpn --writepid /tmp/openvpn.pid &'
> >
> > that's where his problem began, IMO.
>
> That's interesting. I thought this was completely equivalent (~ or $HOME), and
> preferred the shorter version.
>
> But you say it's not. Can you comment on this? Thanks in advance...
>
bash.info Tilde expansion:
"If a word begins with an unquoted tilde character (`~'), all of the
characters up to the first unquoted slash (or all characters, if there
is no unquoted slash) are considered a TILDE-PREFIX."
Note "word begins". I've been bitten by this in a makefile:
OPENSSL_DIR := ~/lib/openssl
CPPFLAGS := -I$(OPENSSL_DIR)
The gcc command line then contained -I~/lib/openssl, and the ~ was not
expanded by the shell. ${HOME}/lib/openssl would have worked.
If you want the same alias to work on Cygwin and Linux, you should set
up your $HOME on Cygwin to contain config/client.vpn
You can set your home in /etc/passwd and point it to /cygdrive/c/home
(this may have been mentioned already).
The idea is to always refer to the VPN config as
${HOME}/config/client.vpn and ensure that Cygwin can access it that
way.
Hope this helps,
Csaba
--
GCS a+ e++ d- C++ ULS$ L+$ !E- W++ P+++$ w++$ tv+ b++ DI D++ 5++
The Tao of math: The numbers you can count are not the real numbers.
Life is complex, with real and imaginary parts.
"Ok, it boots. Which means it must be bug-free and perfect. " -- Linus Torvalds
"People disagree with me. I just ignore them." -- Linus Torvalds
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
- Raw text -