Re: [O] How to use org mode shell with ssh?

2016-09-23 Thread Xi Shen
I got it :)

After reading
http://orgmode.org/cgit.cgi/org-mode.git/tree/lisp/ob-shell.el#n57, I found
I can simply specify the shell name in the block.


On Fri, Sep 23, 2016 at 6:50 PM Fabrice Popineau <
fabrice.popin...@centralesupelec.fr> wrote:

> 2016-09-23 10:32 GMT+02:00 Xi Shen :
>
>> Hi,
>>
>> On my Windows system, I have Cygwin setup, with Emacs as part of the
>> Cygwin installation.
>>
>
> Cygwin Emacs is not a native Emacs (AFAIK). The difference is in the way
> it groks pathnames
> and other stuff like the default shell.
>
> I also setup my Cygwin environment to use zsh. I started my Emacs from
>> this zsh environment. I think that's where org inherited this setting.
>>
>> I think when org execute my block, it some how assumed that it should use
>> the same shell at the remote end.
>>
>
> The portion of code I pointed out does not make sense to me and it may be
> responsible for your problem.
>
> Fabrice
>
-- 


Thanks,
David S.


Re: [O] How to use org mode shell with ssh?

2016-09-23 Thread Fabrice Popineau
2016-09-23 10:32 GMT+02:00 Xi Shen :

> Hi,
>
> On my Windows system, I have Cygwin setup, with Emacs as part of the
> Cygwin installation.
>

Cygwin Emacs is not a native Emacs (AFAIK). The difference is in the way it
groks pathnames
and other stuff like the default shell.

I also setup my Cygwin environment to use zsh. I started my Emacs from this
> zsh environment. I think that's where org inherited this setting.
>
> I think when org execute my block, it some how assumed that it should use
> the same shell at the remote end.
>

The portion of code I pointed out does not make sense to me and it may be
responsible for your problem.

Fabrice


Re: [O] How to use org mode shell with ssh?

2016-09-23 Thread Xi Shen
Hi,

On my Windows system, I have Cygwin setup, with Emacs as part of the Cygwin
installation. I also setup my Cygwin environment to use zsh. I started my
Emacs from this zsh environment. I think that's where org inherited this
setting.

I think when org execute my block, it some how assumed that it should use
the same shell at the remote end.

P.S. OpenWRT is the router OS. It is just a tiny Linux. Most people would
not install zsh on it :P


On Fri, Sep 23, 2016 at 4:35 AM Fabrice Popineau <
fabrice.popin...@supelec.fr> wrote:

> My $0.02
>
> As I'm using Emacs on Windows, with MSYS2+MingW64, I tried this.
> There is a problem with using bash from a _native_ MingW64 Emacs:
> bash is a MSYS2 app and Emacs is a MingW64 app.
>
> From emacs, I would have used the plink protocol, so that's what I did.
> And I got this message in the *Org-Babel Error Output* buffer
>
> /bin/sh: 1: C:/Local/Emacs/bin/cmdproxy.exe: not found
>
> So I looked at ob-eval.el and the org-babel-eval function.
> And there are at least 2 big problems.
> 1- when entering this function, the `command' parameter is
> "C:/Local/Emacs/bin/cmdproxy.exe"
> 2 - the `shell-file-name' variable has the same value
> So the following won't work for Windows :
> ;; Unfortunately, `executable-find' does not support file name
> ;; handlers.  Therefore, we could use it in the local case
> ;; only.
> (shell-file-name
> (cond ((and (not (file-remote-p default-directory))
> (executable-find shell-file-name))
> shell-file-name)
>   ((file-executable-p
> (concat (file-remote-p default-directory) shell-file-name))
> shell-file-name)
>   ("/bin/sh")))
>
> BTW I don't see the point concatenating shell-file-name with
> default-directory when the later is remote.
> Do we expect to find the shell in the remote directory ?
>
> Anyway, there is little chance this stuff will work under Windows with a
> native Emacs.
> If I find time, I may try to propose some fix.
>
> Fabrice
>
>
> 2016-09-22 16:52 GMT+02:00 Nick Dokos :
>
>> Colin Baxter  writes:
>>
>>
>> >> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
>> >> ls -al
>> >> #+END_SRC
>> >>
>> >> The error, I think, is from the remote end.
>> >>
>> >> /bin/sh: /bin/zsh: not found
>> >>
>> >> Clearly, I am using zsh on my Windows, but my remote OpenWRT system
>> only has ash installed. Is
>> >> there's way to specify the shell to use on the remote end?
>> >>
>> >
>> > I can't help you here. I've never used openwrt. All I can suggest is to
>> > search openwrt documentation or try with cgywin.
>> >
>>
>> IIUC, openwrt is the name of the remote node - nothing to do with OpenWrt
>> (except of course, that
>> the remote node may be a router which has been flashed with OpenWrt, but
>> that should make no
>> difference to ssh/tramp).
>>
>> --
>> Nick
>>
>>
>>
>
>
> --
> Fabrice Popineau
> -
> SUPELEC
> Département Informatique
> 3, rue Joliot Curie
> 91192 Gif/Yvette Cedex
> Tel direct : +33 (0) 169851950
> Standard : +33 (0) 169851212
> --
>
> --


Thanks,
David S.


Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread Fabrice Popineau
My $0.02

As I'm using Emacs on Windows, with MSYS2+MingW64, I tried this.
There is a problem with using bash from a _native_ MingW64 Emacs:
bash is a MSYS2 app and Emacs is a MingW64 app.

>From emacs, I would have used the plink protocol, so that's what I did.
And I got this message in the *Org-Babel Error Output* buffer

/bin/sh: 1: C:/Local/Emacs/bin/cmdproxy.exe: not found

So I looked at ob-eval.el and the org-babel-eval function.
And there are at least 2 big problems.
1- when entering this function, the `command' parameter is
"C:/Local/Emacs/bin/cmdproxy.exe"
2 - the `shell-file-name' variable has the same value
So the following won't work for Windows :
;; Unfortunately, `executable-find' does not support file name
;; handlers.  Therefore, we could use it in the local case
;; only.
(shell-file-name
(cond ((and (not (file-remote-p default-directory))
(executable-find shell-file-name))
shell-file-name)
  ((file-executable-p
(concat (file-remote-p default-directory) shell-file-name))
shell-file-name)
  ("/bin/sh")))

BTW I don't see the point concatenating shell-file-name with
default-directory when the later is remote.
Do we expect to find the shell in the remote directory ?

Anyway, there is little chance this stuff will work under Windows with a
native Emacs.
If I find time, I may try to propose some fix.

Fabrice


2016-09-22 16:52 GMT+02:00 Nick Dokos :

> Colin Baxter  writes:
>
>
> >> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
> >> ls -al
> >> #+END_SRC
> >>
> >> The error, I think, is from the remote end.
> >>
> >> /bin/sh: /bin/zsh: not found
> >>
> >> Clearly, I am using zsh on my Windows, but my remote OpenWRT system
> only has ash installed. Is
> >> there's way to specify the shell to use on the remote end?
> >>
> >
> > I can't help you here. I've never used openwrt. All I can suggest is to
> > search openwrt documentation or try with cgywin.
> >
>
> IIUC, openwrt is the name of the remote node - nothing to do with OpenWrt
> (except of course, that
> the remote node may be a router which has been flashed with OpenWrt, but
> that should make no
> difference to ssh/tramp).
>
> --
> Nick
>
>
>


-- 
Fabrice Popineau
-
SUPELEC
Département Informatique
3, rue Joliot Curie
91192 Gif/Yvette Cedex
Tel direct : +33 (0) 169851950
Standard : +33 (0) 169851212
--


Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread Colin Baxter
On Thu, Sep 22 2016, Xi Shen wrote:

> Instead of using ssh, I tried with scp. This time I got a different error.
>
> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
> ls -al
> #+END_SRC
>
> The error, I think, is from the remote end.
>
> /bin/sh: /bin/zsh: not found
>
> Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has 
> ash installed. Is
> there's way to specify the shell to use on the remote end?
>

I can't help you here. I've never used openwrt. All I can suggest is to
search openwrt documentation or try with cgywin.

Good luck.



Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread Nick Dokos
Colin Baxter  writes:


>> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
>> ls -al
>> #+END_SRC
>>
>> The error, I think, is from the remote end.
>>
>> /bin/sh: /bin/zsh: not found
>>
>> Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has 
>> ash installed. Is
>> there's way to specify the shell to use on the remote end?
>>
>
> I can't help you here. I've never used openwrt. All I can suggest is to
> search openwrt documentation or try with cgywin.
>

IIUC, openwrt is the name of the remote node - nothing to do with OpenWrt 
(except of course, that
the remote node may be a router which has been flashed with OpenWrt, but that 
should make no
difference to ssh/tramp).

-- 
Nick




Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread David A. Gershman
I'm not familiar with remote execution like this, but are you specifying
/zsh/ on the Windows side or is it somehow inherently being assumed for
the remote?  A quick little hack to try may be to copy the /zsh/
executable on Windows to /ash/ and see if it fools the remote side.

On 09/22/2016 07:00 AM, Colin Baxter wrote:
> On Thu, Sep 22 2016, Xi Shen wrote:
>
>> Instead of using ssh, I tried with scp. This time I got a different error.
>>
>> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
>> ls -al
>> #+END_SRC
>>
>> The error, I think, is from the remote end.
>>
>> /bin/sh: /bin/zsh: not found
>>
>> Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has 
>> ash installed. Is
>> there's way to specify the shell to use on the remote end?
>>
> I can't help you here. I've never used openwrt. All I can suggest is to
> search openwrt documentation or try with cgywin.
>
> Good luck.



Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread Nick Dokos
Xi Shen  writes:

> Instead of using ssh, I tried with scp. This time I got a different error.
>
> #+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
> ls -al
> #+END_SRC
>
Try opening the file in tramp directly - that should tell you where the error
lies: tramp or org?

> The error, I think, is from the remote end.
>
> /bin/sh: /bin/zsh: not found
>
> Clearly, I am using zsh on my Windows, but my remote OpenWRT system only has 
> ash installed. Is there's way to specify the shell to use on the remote end?
>

Even more: try ssh to your box from the command line. Once you figure out
how that works, then you can teach tramp to use that method.

> On Thu, Sep 22, 2016 at 8:15 PM Xi Shen  wrote:
>
> Hi,
>
> I just tried with:
>
> #+BEGIN_SRC shell :dir /ssh:openwrt:/mnt/sda1
> ls -al
> #+END_SRC
>
> But still got the same error. I wonder on which end threw me this error. 
> Maybe it is because I am using Emacs on Windows, and some thing is missing? 
> Or maybe it is because the remote
> system is OpenWRT which has limited function?
>
> On Thu, Sep 22, 2016 at 4:57 PM Colin Baxter  wrote:
>
> On Wed, Sep 21 2016, William Denton wrote:
>
> > On 22 September 2016, Xi Shen wrote:
> >
> >> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1
> >> ls -al
> >> #+END_SRC
> >
> > Just use ssh, not sshx, and it should work.
> >
> > Bill
>
> In babel it is now (shell . t). The form (sh . t) is depreciated as 
> from
> org-mode version 8.2.10 at least.
>
> Best wishes.
>
> --
>
> Thanks,
> David S.
>
> --
>
> Thanks,
> David S.
>

-- 
Nick




Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread Xi Shen
Instead of using ssh, I tried with scp. This time I got a different error.

#+BEGIN_SRC shell :dir /scp:openwrt:/mnt/sda1
ls -al
#+END_SRC

The error, I think, is from the remote end.

/bin/sh: /bin/zsh: not found

Clearly, I am using zsh on my Windows, but my remote OpenWRT system only
has ash installed. Is there's way to specify the shell to use on the remote
end?


On Thu, Sep 22, 2016 at 8:15 PM Xi Shen  wrote:

> Hi,
>
> I just tried with:
>
> #+BEGIN_SRC shell :dir /ssh:openwrt:/mnt/sda1
> ls -al
> #+END_SRC
>
> But still got the same error. I wonder on which end threw me this error.
> Maybe it is because I am using Emacs on Windows, and some thing is missing?
> Or maybe it is because the remote system is OpenWRT which has limited
> function?
>
>
> On Thu, Sep 22, 2016 at 4:57 PM Colin Baxter  wrote:
>
>> On Wed, Sep 21 2016, William Denton wrote:
>>
>> > On 22 September 2016, Xi Shen wrote:
>> >
>> >> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1
>> >> ls -al
>> >> #+END_SRC
>> >
>> > Just use ssh, not sshx, and it should work.
>> >
>> > Bill
>>
>> In babel it is now (shell . t). The form (sh . t) is depreciated as from
>> org-mode version 8.2.10 at least.
>>
>> Best wishes.
>>
> --
>
>
> Thanks,
> David S.
>
-- 


Thanks,
David S.


Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread Xi Shen
Hi,

I just tried with:

#+BEGIN_SRC shell :dir /ssh:openwrt:/mnt/sda1
ls -al
#+END_SRC

But still got the same error. I wonder on which end threw me this error.
Maybe it is because I am using Emacs on Windows, and some thing is missing?
Or maybe it is because the remote system is OpenWRT which has limited
function?


On Thu, Sep 22, 2016 at 4:57 PM Colin Baxter  wrote:

> On Wed, Sep 21 2016, William Denton wrote:
>
> > On 22 September 2016, Xi Shen wrote:
> >
> >> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1
> >> ls -al
> >> #+END_SRC
> >
> > Just use ssh, not sshx, and it should work.
> >
> > Bill
>
> In babel it is now (shell . t). The form (sh . t) is depreciated as from
> org-mode version 8.2.10 at least.
>
> Best wishes.
>
-- 


Thanks,
David S.


Re: [O] How to use org mode shell with ssh?

2016-09-22 Thread Colin Baxter
On Wed, Sep 21 2016, William Denton wrote:

> On 22 September 2016, Xi Shen wrote:
>
>> #+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1
>> ls -al
>> #+END_SRC
>
> Just use ssh, not sshx, and it should work.
>
> Bill

In babel it is now (shell . t). The form (sh . t) is depreciated as from
org-mode version 8.2.10 at least.

Best wishes.



Re: [O] How to use org mode shell with ssh?

2016-09-21 Thread William Denton

On 22 September 2016, Xi Shen wrote:


#+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1
ls -al
#+END_SRC


Just use ssh, not sshx, and it should work.

Bill
--
William Denton :: Toronto, Canada :: https://www.miskatonic.org/
Caveat lector.



[O] How to use org mode shell with ssh?

2016-09-21 Thread Xi Shen
Hi,

I tried this block

#+BEGIN_SRC sh :dir /sshx:openwrt:/mnt/sda1
ls -al
#+END_SRC

But I got

byte-code: Method `sshx' should specify both encoding and decoding command
or an scp program

But I could not find a way to define the encoding/decoding command...
-- 


Thanks,
David S.