about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--el-exiftool.el25
1 files changed, 21 insertions, 4 deletions
diff --git a/el-exiftool.el b/el-exiftool.el
index 2e62dfd..85458e1 100644
--- a/el-exiftool.el
+++ b/el-exiftool.el
@@ -28,12 +28,19 @@
     response))
 
 (defun el-exiftool-run ()
+  "Start an exiftool process if not already running. If an exiftool
+process is already running, delete it, and create a new one. Return
+the process object of the newly created process."
   (when-let (exiftool (get-process "exiftool"))
     (delete-process exiftool))
   (start-process "exiftool" "exiftool" "exiftool" "-stay_open" "True" "-@" "-"))
 
 (let ((tq (tq-create (el-exiftool-run))))
   (defun el-exiftool-command (&rest args)
+    "Execute a command in the currently running exiftool
+process. If there is no running exiftool process, a new one will
+be created. ARGS are arguments of the command to be run, as
+provided to the exiftool command line application."
     (string-trim
      (let ((suffix "{ready}\n"))
        (string-remove-suffix
@@ -42,7 +49,11 @@
 			   "\n-execute\n")
 		suffix))))))
 
-(defun el-exiftool-read (filepath &rest tags)
+(defun el-exiftool-read (file &rest tags)
+  "Read TAGs from FILE, and return an alist mapping tag names to
+corresponding values.
+
+\(fn FILE TAG...)"
   (mapcar
    (lambda (line)
      (apply 'cons (split-string line ": ")))
@@ -51,17 +62,23 @@
 	   "-s" "-s"
 	   (append
 	    (mapcar (apply-partially 'format "-%s") tags)
-	    (list filepath)))
+	    (list file)))
     "\n+")))
 
 (defun el-exiftool-copy (source destination)
+  "Copy tags from SOURCE file to DESTINATION file."
   (el-exiftool-command "-overwrite_original"
 		    "-tagsFromFile" source
 		    "-all:all" destination)
   (message "Tags from %s copied to %s" source destination)
   destination)
 
-(defun el-exiftool-write (filepath &rest tag-value-alist)
+(defun el-exiftool-write (file &rest tag-value-alist)
+  "Write tags to FILE.
+
+The metadata to be written is specified as (TAG . VALUE) pairs.
+
+\(fn FILE (TAG . VALUE)...)"
   (apply 'el-exiftool-command
 	 "-m" "-overwrite_original"
 	 (append
@@ -70,6 +87,6 @@
 	    (lambda ((tag . value))
 	      (format "-%s=%s" tag value)))
 	   tag-value-alist)
-	  (list filepath))))
+	  (list file))))
 
 (provide 'el-exiftool)