diff options
Diffstat (limited to 'lisp/org/ob-hledger.el')
-rw-r--r-- | lisp/org/ob-hledger.el | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/lisp/org/ob-hledger.el b/lisp/org/ob-hledger.el deleted file mode 100644 index 48dcb8cea1a..00000000000 --- a/lisp/org/ob-hledger.el +++ /dev/null @@ -1,69 +0,0 @@ -;;; ob-hledger.el --- Babel Functions for hledger -*- lexical-binding: t; -*- - -;; Copyright (C) 2010-2021 Free Software Foundation, Inc. - -;; Author: Simon Michael -;; Keywords: literate programming, reproducible research, plain text accounting -;; Homepage: https://orgmode.org - -;; This file is part of GNU Emacs. - -;; GNU Emacs is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. - -;;; Commentary: - -;; Babel support for evaluating hledger entries. -;; -;; Based on ob-ledger.el. -;; If the source block is empty, hledger will use a default journal file, -;; probably ~/.hledger.journal (it may not notice your $LEDGER_FILE env var). -;; So make ~/.hledger.journal a symbolic link to the real file if necessary. - -;; TODO Unit tests are more than welcome, too. - -;;; Code: -(require 'ob) - -(defvar org-babel-default-header-args:hledger - '((:results . "output") (:exports . "results") (:cmdline . "bal")) - "Default arguments to use when evaluating a hledger source block.") - -(defun org-babel-execute:hledger (body params) - "Execute a block of hledger entries with org-babel. -This function is called by `org-babel-execute-src-block'." - (message "executing hledger source code block") - (letrec ( ;(result-params (split-string (or (cdr (assq :results params)) ""))) - (cmdline (cdr (assq :cmdline params))) - (in-file (org-babel-temp-file "hledger-")) - (out-file (org-babel-temp-file "hledger-output-")) - (hledgercmd (concat "hledger" - (if (> (length body) 0) - (concat " -f " (org-babel-process-file-name in-file)) - "") - " " cmdline))) - (with-temp-file in-file (insert body)) -;; TODO This is calling for some refactoring: -;; (concat "hledger" (if ...) " " cmdline) -;; could be built only once and bound to a symbol. - (message "%s" hledgercmd) - (with-output-to-string - (shell-command (concat hledgercmd " > " (org-babel-process-file-name out-file)))) - (with-temp-buffer (insert-file-contents out-file) (buffer-string)))) - -(defun org-babel-prep-session:hledger (_session _params) - (error "hledger does not support sessions")) - -(provide 'ob-hledger) - -;;; ob-hledger.el ends here |