This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: cygpath -m behaviour change
- From: Robert Klemme <shortcutter at googlemail dot com>
- To: cygwin at cygwin dot com
- Date: Thu, 19 Sep 2013 16:41:36 +0200
- Subject: Re: cygpath -m behaviour change
- Authentication-results: sourceware.org; auth=none
- References: <CAF+hkWrUP9UuovH19rgocb4+37Q5V8-LPxNLwi+qUYc4qDm5zg at mail dot gmail dot com>
On Thu, Sep 19, 2013 at 3:23 PM, David Griffiths
<david.griffiths@gmail.com> wrote:
>> But why are you even using cygpath to try and determine the containing
>> directory? 'dirname' does that task, in a much more portable manner,
>> and without having to worry about whether 'file/..' can be abused in
>> spite of POSIX semantics
>
> To given even more context, this is how it was used:
>
> uname=`uname`
>
> case $uname in
> CYGWIN_*)
> CURRENT_DIR=$(cygpath -ma "${0}\..")
> ;;
>
> *)
> CURRENT_DIR=$(cd $(dirname "$0") && pwd)
> esac
>
> CURRENT_DIR (or something derived from it) ends up getting passed to a
> Java program which requires the absolute pathname in native format.
> The dirname/pwd variant won't do that under cygwin.
I don't understand why there is a difference made with regard to the
directory extraction in Cygwin and others. I'd probably rather have
done
CURRENT_DIR=$(dirname "$0")
if [ ! -d "$CURRENT_DIR" ]; then
echo "ERROR: cannot derive directory from script path: $0" >&2
exit 1
fi
case $(uname) in
CYGWIN_*)
CURRENT_DIR=$(cygpath -wa "$CURRENT_DIR")
;;
*)
CURRENT_DIR=$(cd "$CURRENT_DIR" && pwd)
;;
esac
"$JAVA_HOME/bin/java" foo.bar.Main "$CURRENT_DIR"
Kind regards
robert
--
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
--
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