Re: Possible bugs in org-babel-temp-stable-file

2022-10-24 Thread Ihor Radchenko
Ferdinand Pieper  writes:

> Ihor Radchenko  writes:
>
>> When you have :dir argument in a source block, default-directory is set
>> to :dir value during execution. This affects the location of temporary
>> files as well.
>
> Yes, but not for header argument evaluation (which I think is reasonable).
> An example of what I meant:
>
> --8<---cut here---start->8---
> #+begin_src shell :dir /ssh:remote: :var file=(org-babel-temp-stable-file 
> (org-babel-get-src-block-info t) "")
> echo hello world > $file
> #+end_src
> --8<---cut here---end--->8---

Sure. I believe that we do not need to change anything wrt this example.
Though maybe explain a bit in documentation? Patches welcome!

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



Re: Possible bugs in org-babel-temp-stable-file

2022-10-24 Thread Ferdinand Pieper
Ihor Radchenko  writes:

> When you have :dir argument in a source block, default-directory is set
> to :dir value during execution. This affects the location of temporary
> files as well.

Yes, but not for header argument evaluation (which I think is reasonable).
An example of what I meant:

--8<---cut here---start->8---
#+begin_src shell :dir /ssh:remote: :var file=(org-babel-temp-stable-file 
(org-babel-get-src-block-info t) "")
echo hello world > $file
#+end_src
--8<---cut here---end--->8---



Re: Possible bugs in org-babel-temp-stable-file

2022-10-23 Thread Ihor Radchenko
Ferdinand Pieper  writes:

>>> It could also be nice to add an extra argument to force the use of
>>> the local org-babel-temporary-stable-directory for remote files.
>>
>> I am not sure if it is a good idea.
>> On remote files, default-directory often points to the remote making
>> `shell-command' and similar run code on remote machine. It may not work
>> well with local temporary directory.
>
> I think you are right. Something like this could only be relevant for local 
> files which execute code on remote locations (e.g. babel via the :dir 
> argument) and require remote temp files instead of local ones. But that seems 
> like too much of an edge case to support. If necessary a user could easily 
> solve it with a small wrapper, that sets default-directory accordingly.

When you have :dir argument in a source block, default-directory is set
to :dir value during execution. This affects the location of temporary
files as well.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at 



Re: Possible bugs in org-babel-temp-stable-file

2022-10-23 Thread Ferdinand Pieper
Ihor Radchenko  writes:

> Fixed now.
> https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=69e3a4db3d0c54b4165761f56523da4962eff74c

Seems good, thanks.

>> It could also be nice to add an extra argument to force the use of
>> the local org-babel-temporary-stable-directory for remote files.
>
> I am not sure if it is a good idea.
> On remote files, default-directory often points to the remote making
> `shell-command' and similar run code on remote machine. It may not work
> well with local temporary directory.

I think you are right. Something like this could only be relevant for local 
files which execute code on remote locations (e.g. babel via the :dir argument) 
and require remote temp files instead of local ones. But that seems like too 
much of an edge case to support. If necessary a user could easily solve it with 
a small wrapper, that sets default-directory accordingly.




Re: Possible bugs in org-babel-temp-stable-file (was: [PATCH] Add light argument to org-babel-lob-get-info)

2022-10-23 Thread Ihor Radchenko
Ferdinand Pieper  writes:

>> Have you seen org-babel-temp-stable-file?
>
> I have not. Seems really useful, thanks for mentioning. I wrote my functions 
> before org-babel-temp-stable-file was added, but seems I can simplify them 
> now quite a bit.
>
> I noticed two possible bugs in org-babel-temp-stable-file:
>
> 1. Prefix could be an empty string and that would break the filename 
> extension, because (expand-file-name "" org-babel-temporary-stable-directory) 
> would not add a slash in the path.

Fixed now.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=69e3a4db3d0c54b4165761f56523da4962eff74c

> 2. The org-babel-temporary-stable-directory is only created upon initial 
> loading. But the intended behavior for remote paths seems to be to create the 
> temp files on the remote. Which will fail, because 
> org-babel-temporary-stable-directory does not exist on the remote. However 
> creating the directories on remotes of course makes cleanup harder to 
> impossible, if the remotes are not accessible any more.

For remotes, we fall back to org-babel-remote-temporary-directory.
Apparently in all but one place in code. Now fixed.

> It could also be nice to add an extra argument to force the use of the local 
> org-babel-temporary-stable-directory for remote files.

I am not sure if it is a good idea.
On remote files, default-directory often points to the remote making
`shell-command' and similar run code on remote machine. It may not work
well with local temporary directory.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at .
Support Org development at ,
or support my work at