diff options
-rw-r--r-- | .guix-authorizations | 4 | ||||
-rw-r--r-- | .guix-channel | 3 | ||||
-rw-r--r-- | .guix/emacs-exiftool-package.scm | 40 | ||||
-rw-r--r-- | README.org | 20 | ||||
-rw-r--r-- | exiftool.el | 3 | ||||
l--------- | guix.scm | 1 | ||||
-rw-r--r-- | tests/exiftool-tests.el | 10 |
7 files changed, 73 insertions, 8 deletions
diff --git a/.guix-authorizations b/.guix-authorizations new file mode 100644 index 0000000..a8ef8be --- /dev/null +++ b/.guix-authorizations @@ -0,0 +1,4 @@ +(authorizations + (version 0) + (("7F73 0343 F2F0 9F3C 77BF 79D3 2E25 EE8B 6180 2BB3" + (name "arunisaac")))) diff --git a/.guix-channel b/.guix-channel new file mode 100644 index 0000000..35e181f --- /dev/null +++ b/.guix-channel @@ -0,0 +1,3 @@ +(channel + (version 0) + (directory ".guix")) diff --git a/.guix/emacs-exiftool-package.scm b/.guix/emacs-exiftool-package.scm new file mode 100644 index 0000000..007a323 --- /dev/null +++ b/.guix/emacs-exiftool-package.scm @@ -0,0 +1,40 @@ +;;; exiftool.el --- Elisp wrapper around ExifTool +;;; Copyright © 2023 Arun Isaac <arunisaac@systemreboot.net> +;;; +;;; This file is part of exiftool.el. +;;; +;;; exiftool.el 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. +;;; +;;; exiftool.el 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 exiftool.el. If not, see +;;; <https://www.gnu.org/licenses/>. + +(define-module (emacs-exiftool-package) + #:use-module ((gnu packages emacs-xyz) #:prefix guix:) + #:use-module (guix gexp) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix utils)) + +(define-public emacs-exiftool + (package + (inherit guix:emacs-exiftool) + (source (local-file ".." + "emacs-exiftool-checkout" + #:recursive? #t + #:select? (or (git-predicate (dirname (current-source-directory))) + (const #t)))) + (arguments + (substitute-keyword-arguments (package-arguments guix:emacs-exiftool) + ((#:test-command _ #~'()) + #~(list "make")))))) + +emacs-exiftool @@ -1,3 +1,8 @@ +#+TITLE: exiftool.el +#+LINK: wikipedia https://en.wikipedia.org/wiki/ + +[[https://melpa.org/#/exiftool][https://melpa.org/packages/exiftool-badge.svg]] [[https://ci.systemreboot.net/jobs/exiftool.el][https://ci.systemreboot.net/badge/exiftool.el.svg]] + exiftool.el is an elisp wrapper around [[http://www.sno.phy.queensu.ca/~phil/exiftool/][ExifTool]]. ExifTool supports reading and writing metadata in various formats including [[wikipedia:Exif][EXIF]], [[wikipedia:Extensible_Metadata_Platform][XMP]] and [[wikipedia:IPTC_Information_Interchange_Model][IPTC]]. @@ -8,6 +13,8 @@ to be exected. So, exiftool.el starts an ExifTool process in the * Installation +https://repology.org/badge/vertical-allrepos/emacs:exiftool.svg + exiftool.el is available from [[https://melpa.org/][MELPA]]. Or, you can also clone this git repo and add the path to your /load-path/. @@ -94,9 +101,16 @@ one. Return the process object of the newly created process. Tests are located in the /tests/ folder. You can run them using #+BEGIN_SRC sh - make -C tests + make check #+END_SRC -{{{contact}}} +* Contributing + +Feedback, suggestions, feature requests, bug reports and patches are +all welcome. Please contact me by mail at [[mailto:arunisaac@systemreboot.net][arunisaac@systemreboot.net]]. + +* License -{{{license(exiftool.el)}}} +exiftool.el is free software released under the terms of the [[https://www.gnu.org/licenses/gpl.txt][GNU +General Public License]], either version 3 of the License, or (at your +option) any later version. diff --git a/exiftool.el b/exiftool.el index 4b60608..7ba3d27 100644 --- a/exiftool.el +++ b/exiftool.el @@ -67,6 +67,9 @@ process." (start-process "exiftool" "*exiftool*" exiftool-executable "-stay_open" "True" "-@" "-")) +;; Declare exiftool-command to pacify byte compiler +(declare-function exiftool-command "exiftool.el" (&rest args)) + (let ((tq (tq-create (exiftool-run)))) (defun exiftool-command (&rest args) "Execute a command in the currently running exiftool process. diff --git a/guix.scm b/guix.scm new file mode 120000 index 0000000..44553c7 --- /dev/null +++ b/guix.scm @@ -0,0 +1 @@ +.guix/emacs-exiftool-package.scm
\ No newline at end of file diff --git a/tests/exiftool-tests.el b/tests/exiftool-tests.el index 8ed4f1c..36aeb0b 100644 --- a/tests/exiftool-tests.el +++ b/tests/exiftool-tests.el @@ -1,7 +1,7 @@ ;;; exiftool.el --- Elisp wrapper around exiftool ;; -*- lexical-binding: t -*- ;; Elisp wrapper around exiftool -;; Copyright (C) 2017, 2019 by Arun I +;; Copyright (C) 2017, 2019, 2021 by Arun I ;; ;; Author: Arun I <arunisaac@systemreboot.net> ;; Keywords: data @@ -28,6 +28,10 @@ ;;; Code: +(require 'exiftool) +(require 'cl-lib) +(require 'ert) + (defvar exiftool-tests--tag-value '(("Marked" . "True") ("Creator" . "foo") @@ -43,10 +47,6 @@ tag)) exiftool-tests--tag-value)) -(require 'exiftool) -(require 'cl-lib) -(require 'ert) - (defmacro with-temp-test-file (test-file temp-file &rest body) "Copy TEST-FILE to temporary file, put path in TEMP-FILE, evaluate BODY." (declare (indent defun)) |