ob-core: file-mode option in source code block arguments
* ob-core.el (org-babel-execute-src-block): Source code block header argument `:file-mode' can set file permissions if `:file' argument is provided. (org-babel-common-header-args-w-values): Add `:file-mode' to common header arguments. TINYCHANGE
This commit is contained in:
parent
a103f3f3ee
commit
ea946353aa
|
@ -17444,6 +17444,17 @@ default behavior is to automatically determine the result type.
|
|||
TAB-delimited output. You can choose a different separator with
|
||||
the =sep= header argument.
|
||||
|
||||
#+cindex: @samp{file-mode}, header argument
|
||||
The =file-mode= header argument defines the file permissions. To
|
||||
make it executable, use =:file-mode (identity #o755)=.
|
||||
|
||||
#+begin_example
|
||||
,#+BEGIN_SRC shell :results file :file script.sh :file-mode (identity #o755)
|
||||
echo "#!/bin/bash"
|
||||
echo "echo Hello World"
|
||||
,#+END_SRC
|
||||
#+end_example
|
||||
|
||||
*** Format
|
||||
:PROPERTIES:
|
||||
:UNNUMBERED: notoc
|
||||
|
|
|
@ -261,6 +261,11 @@ explicitly:
|
|||
In situations where ~org-return~ calls ~newline~, multiple newlines
|
||||
can now be inserted with this prefix argument.
|
||||
|
||||
*** New source code block header argument =:file-mode=
|
||||
|
||||
Source code block header argument =:file-mode= can set file
|
||||
permissions if =:file= argument is provided.
|
||||
|
||||
** New commands
|
||||
*** ~org-table-header-line-mode~
|
||||
|
||||
|
|
|
@ -403,6 +403,7 @@ then run `org-babel-switch-to-session'."
|
|||
(file . :any)
|
||||
(file-desc . :any)
|
||||
(file-ext . :any)
|
||||
(file-mode . ((#o755 #o555 #o444 :any)))
|
||||
(hlines . ((no yes)))
|
||||
(mkdirp . ((yes no)))
|
||||
(no-expand)
|
||||
|
@ -734,7 +735,11 @@ block."
|
|||
(with-temp-file file
|
||||
(insert (org-babel-format-result
|
||||
result
|
||||
(cdr (assq :sep params))))))
|
||||
(cdr (assq :sep params)))))
|
||||
;; Set file permissions if header argument
|
||||
;; `:file-mode' is provided.
|
||||
(when (assq :file-mode params)
|
||||
(set-file-modes file (cdr (assq :file-mode params)))))
|
||||
(setq result file))
|
||||
;; Possibly perform post process provided its
|
||||
;; appropriate. Dynamically bind "*this*" to the
|
||||
|
|
|
@ -1746,6 +1746,20 @@ line 1
|
|||
(cdr (assq :file (nth 2 (org-babel-get-src-block-info t))))))
|
||||
))
|
||||
|
||||
(ert-deftest test-ob/file-mode ()
|
||||
"Ensure that :file-mode results in expected permissions."
|
||||
(should
|
||||
(equal #o755
|
||||
(org-test-with-temp-text-in-file "
|
||||
#+begin_src emacs-lisp :results file :file t.sh :file-mode (identity #o755)
|
||||
nil
|
||||
#+end_src"
|
||||
(org-babel-next-src-block)
|
||||
(org-babel-execute-src-block)
|
||||
(unwind-protect
|
||||
(file-modes "t.sh")
|
||||
(delete-file "t.sh"))))))
|
||||
|
||||
(ert-deftest test-ob-core/dir-mkdirp ()
|
||||
"Test :mkdirp with :dir header combination."
|
||||
(should-not
|
||||
|
|
Loading…
Reference in New Issue