Maurizio Vitale <m...@cuma.i-did-not-set--mail-host-address--so-tickle-me> writes:
> I'd find useful to use tramp syntax in the :tangle specification. > In my case it would be to specify sudo when tangling config files that > are supposed to go to areas not writable by the user running Emacs. > Something like: > > #+begin_src sh :tangle /sudo::/etc/my_config_file > ... > #+end_src > > other people might be interested in remote access to tangle targets. > > Is there a way to achieve the above? > > If I try to tangle the above, I get something along the lines that > "tramp cannot append to file". Would it be possible to have org-babel to > (optionally) tangle to a buffer and then save to file in one go? It's a bug of append-file. We could not use it: (code by Alexey Voinov, stolen from magit): --8<---------------cut here---------------start------------->8--- diff --git a/contrib/babel/lisp/org-babel-tangle.el b/contrib/babel/lisp/org-babel-tangle.el index dd76195..c4ea0d8 100644 --- a/contrib/babel/lisp/org-babel-tangle.el +++ b/contrib/babel/lisp/org-babel-tangle.el @@ -127,7 +127,12 @@ exported source code blocks by language." (insert (concat she-bang "\n")) (setq she-banged (cons file-name she-banged))) (org-babel-spec-to-string spec) - (append-to-file nil nil file-name)) + (let ((content (buffer-string))) + (with-temp-buffer + (insert-file-contents file-name) + (goto-char (point-max)) + (insert content) + (write-region nil nil ignore-file)))) ;; update counter (setq block-counter (+ 1 block-counter)) (add-to-list 'path-collector file-name))))) --8<---------------cut here---------------end--------------->8--- -- Rémi Vanicat _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode