Function: org-odt-do-convert
org-odt-do-convert is a byte-compiled function defined in
ox-odt.el.gz.
Signature
(org-odt-do-convert IN-FILE OUT-FMT &optional OPEN)
Documentation
Workhorse routine for org-odt-convert.
Source Code
;; Defined in /usr/src/emacs/lisp/org/ox-odt.el.gz
(defun org-odt-do-convert (in-file out-fmt &optional open)
"Workhorse routine for `org-odt-convert'."
(require 'browse-url)
(let* ((in-file (let ((f (expand-file-name (or in-file buffer-file-name))))
(if (file-readable-p f) f
(error "Cannot read %s" in-file))))
(in-fmt (file-name-extension in-file))
(out-fmt (or out-fmt (error "Output format unspecified")))
(how (or (org-odt-reachable-p in-fmt out-fmt)
(error "Cannot convert from %s format to %s format?"
in-fmt out-fmt)))
(convert-process (car how))
(out-file (concat (file-name-sans-extension in-file) "."
(nth 1 (or (cdr how) out-fmt))))
(extra-options (or (nth 2 (cdr how)) ""))
(out-dir (file-name-directory in-file))
(cmd (format-spec convert-process
`((?i . ,(shell-quote-argument in-file))
(?I . ,(browse-url-file-url in-file))
(?f . ,out-fmt)
(?o . ,(shell-quote-argument out-file))
(?O . ,(browse-url-file-url out-file))
(?d . , (shell-quote-argument out-dir))
(?D . ,(browse-url-file-url out-dir))
(?x . ,extra-options)))))
(when (file-exists-p out-file)
(delete-file out-file))
(message "Executing %s" cmd)
(let ((cmd-output (shell-command-to-string cmd)))
(message "%s" cmd-output))
(cond
((file-exists-p out-file)
(message "Exported to %s" out-file)
(when open
(message "Opening %s..." out-file)
(org-open-file out-file 'system))
out-file)
(t
(message "Export to %s failed" out-file)
nil))))