emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Shouldn't ob-shell's org-babel-expand-src-block prepend the :shebang


From: Tim Cross
Subject: Re: Shouldn't ob-shell's org-babel-expand-src-block prepend the :shebang value?
Date: Thu, 10 Sep 2020 17:30:25 +1000
User-agent: mu4e 1.5.5; emacs 28.0.50

Vladimir Nikishkin <lockywolf@gmail.com> writes:

> So, my point is the following. A shebang is an almost universally
> accepted way to specify which interpreter should be used for code
> evaluation.
>
> In the ob-core.el, at line 787, the function called
> org-babel-expand-src-block makes a buffer out of the noweb-expanded
> code.
> (I am working with org 20200907)
>
> The sexp is looking like this:
>
> (org-edit-src-code
>      expanded (concat "*Org-Babel Preview " (buffer-name) "[ " lang " ]*"))
>
> I suggest replacing this sexp with
>
> (org-edit-src-code
>      (seq-concatenate 'string (or (alist-get :shebang params) "") "\n"
> expanded) (concat "*Org-Babel Preview " (buffer-name) "[ " lang "
> ]*"))
>
> This way the expanded buffer would respect the shebang, and the
> resulting buffer would be saveable as a runnable file.
>
> I suspect that the second branch of the (if) should be left as it is,
> because non-interactive usage probably means that the code will be
> used later as a part of something, and therefore does not need a
> shebang.
>
> Vlad
>

I'm not sure about this one.

- I often have multiple src blocks which make up one final script once
  tangled. When editing these blocks, I don't want a shebang line for
  each of them.

- Would this work with different shells? I write scripts in multiple
  shell dialects e.g. bash, sh, zsh, ksh etc. Will this add the correct
  shebang?

- Which form of shebang e.g #!/bin/<shell> or #!/usr/bin/env <shell>?

The only thing worse than having to add the shebang manually is having
to remember to remove/change it when not needed :)

Perhaps this could be a user configurable option that you can turn on if
you want it rather than a default action?

-- 
Tim Cross



reply via email to

[Prev in Thread] Current Thread [Next in Thread]