summaryrefslogtreecommitdiff
path: root/org-fc.el
diff options
context:
space:
mode:
Diffstat (limited to 'org-fc.el')
-rw-r--r--org-fc.el112
1 files changed, 0 insertions, 112 deletions
diff --git a/org-fc.el b/org-fc.el
index 047be6d..9ccd448 100644
--- a/org-fc.el
+++ b/org-fc.el
@@ -1145,118 +1145,6 @@ Checks if the headline is a suspended card first."
(interactive)
(org-fc-map-cards 'org-fc-unsuspend-card))
-;;; AWK Interface
-
-(defun org-fc-awk--find (paths)
- "Generate shell code to search PATHS for org files.
-Matches all .org files ignoring ones with names don't start with
-a '.' to exclude temporary / backup files.
-With the '-L' option, 'find' follows symlinks."
- (format
- "find -L %s -name \"*.org\" -not -name \".*\" -print0"
- (mapconcat 'identity paths " ")))
-
-(defun org-fc-awk--indexer-variables ()
- "Variables to pass to indexer scripts."
- `(("fc_tag" . ,org-fc-flashcard-tag)
- ("suspended_tag" . ,org-fc-suspended-tag)
- ("type_property" . ,org-fc-type-property)
- ("cloze_type_property" . ,org-fc-cloze-type-property)
- ("created_property" . ,org-fc-created-property)
- ("review_data_drawer" . ,org-fc-review-data-drawer)))
-
-(cl-defun org-fc-awk--command (file &optional &key variables utils input)
- "Generate the shell command for calling awk.
-The script is called on FILE with (key . value) pairs VARIABLES.
-If UTILS is set to a non-nil value, the shared util file is
-included, too. If INPUT is set to a string, use that
-file (absolute path) as input."
- (concat "gawk "
- (mapconcat
- (lambda (kv) (format "-v %s=%s" (car kv) (cdr kv)))
- variables
- " ")
- " "
- (if utils
- (concat "-f "
- (expand-file-name "awk/utils.awk" org-fc-source-path) " "))
- (concat "-f " (expand-file-name file org-fc-source-path))
- " " input))
-
-(defun org-fc-awk--pipe (&rest commands)
- "Combine COMMANDS with shell pipes."
- (mapconcat 'identity commands " | "))
-
-(defun org-fc-awk--xargs (command)
- "Generate the shell command for calling COMMAND with xargs."
- (concat "xargs -0 " command))
-
-;;;; AWK Wrapper Functions
-
-;; Given two tag strings,
-;; one inherited and one for the current card,
-;; combine them respecting `org-use-tag-inheritance'
-;; and `org-tags-exclude-from-inheritance'.
-;; Inheritance code is based on `org-get-tags'
-(defun org-fc--combine-tags (itags ltags)
- "Simulate org tag inheritance on ITAGS and LTAGS.
-ITAGS and LTAGS are strings `\":tag1:tag2:\"'"
- (delete-dups
- (append
- (org-remove-uninherited-tags (split-string itags ":" t))
- (split-string ltags ":" t))))
-
-(defun org-fc-flatten-index (index)
- "Remove the file-level of INDEX."
- (mapcan
- (lambda (file)
- (mapcar
- (lambda (card)
- (plist-put card :path (plist-get file :path)))
- (plist-get file :cards)))
- index))
-
-(defun org-fc-awk-index-paths (paths)
- "Generate a list of all cards and positions in PATHS."
- (let ((output (shell-command-to-string
- (org-fc-awk--pipe
- (org-fc-awk--find paths)
- (org-fc-awk--xargs
- (org-fc-awk--command
- "awk/index.awk"
- :utils t
- :variables (org-fc-awk--indexer-variables)))))))
- (if (string-prefix-p "(" output)
- (org-fc-flatten-index
- (mapcar
- (lambda (file)
- (plist-put file :cards
- (mapcar
- (lambda (card)
- (plist-put
- card :tags
- (org-fc--combine-tags
- (plist-get card :inherited-tags)
- (plist-get card :local-tags))))
- (plist-get file :cards))))
- (read output)))
- (error "Org-fc shell error: %s" output))))
-
-(defun org-fc-awk-stats-reviews ()
- "Statistics for all card reviews.
-Return nil there is no history file."
- (if (file-exists-p org-fc-review-history-file)
- (let ((output
- (shell-command-to-string
- (org-fc-awk--command
- "awk/stats_reviews.awk"
- :utils t
- :input org-fc-review-history-file
- :variables `(("min_box" . ,org-fc-stats-review-min-box))))))
- (if (string-prefix-p "(" output)
- (read output)
- (error "Org-fc shell error: %s" output)))))
-
;;; Indexing Cards
;;;; Card Filters