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: latest cygwin: 'run' problem


Greetings, Gary Johnson!

>> @START "" /D "%~1" "%~dp0\mintty.exe"

>> > ------------------------- run_bash_here.sh -------------------------
>> > --------------------------------------------------------------------

>> This all is just not needed.
>> Just create a shortcut in "Sent to" to your bash-here.cmd - job done, reap the
>> rewards.

> Thanks very much for the example.  It took me a while to figure out
> what that does.

The key parts are in 'set /?' and 'call /?'.
'cmd /?' is also a good read.

> I copied that line to bash-here.cmd and created a
> shortcut to it from my SendTo directory.  It almost works, but there
> are a few things my version does that yours does not.

> First, yours works only if you execute it while the target directory
> is selected in its parent directory.  Mine also works to run mintty
> in the current directory if you execute it while a file in that
> directory is selected.

That makes little sense. Could be solved, though. CMD doesn't offer a
way to distinguish between file and directory, but we have test.

@ECHO OFF
SETLOCAL
SET CYGWIN=nodosfilewarning
"%~dp0\test.exe" -f "%~f1"
ENDLOCAL
IF ERRORLEVEL 1 (
  SET DEST=%~f1
) ELSE (
  SET DEST=%~dp1
)

START "" /D "%DEST%" "%~dp0\mintty.exe"

> Second, my version runs a login shell which sets up the environment
> correctly, e.g., puts /usr/local/bin:/usr/bin: at the head of PATH.

I already have environment correctly set at login. It's not like i'm logging
into random directories across my filesystem over and over again. I just start a shell where I need it.

> Just telling mintty to run a login shell isn't sufficient, however,
> because that also sets the current directory to your home directory,
> so you then need to cd to the target directory with the target path
> translated to Unix form.

That's why I don't start another login shell. It's inefficient. I already
logged it.

> Those issues may be easy to fix, but as I said, I don't know my way
> around cmd very well.

> It might actually be better if the script always started bash in the
> parent directory of the selected file.  That would be more
> consistent and could be simpler to implement.  I'll try to find an
> explanation of cmd parameter expansion and see what I can figure
> out.


--
WBR,
Andrey Repin (anrdaemon@yandex.ru) 09.09.2014, <16:00>

Sorry for my terrible english...


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


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