summaryrefslogtreecommitdiff
path: root/modules/auth-config.el
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2025-08-14 19:24:49 -0500
committerCraig Jennings <c@cjennings.net>2025-08-14 19:24:49 -0500
commit9278ddd4ea1a8b1a4c1edaa8894516e3f48d245b (patch)
tree1105519cd55a4ebbb1e91609e6aae7cc3929ddaf /modules/auth-config.el
parenta878e5ae99f750ecbbb723f98ef91d3404189a32 (diff)
downloaddotemacs-9278ddd4ea1a8b1a4c1edaa8894516e3f48d245b.tar.gz
dotemacs-9278ddd4ea1a8b1a4c1edaa8894516e3f48d245b.zip
refactor(system-utils): major refactoring / adding tests
Theme: Modularize system-utilities into separate modules. Clean up any typos, buts, and unused variables. Add some initial ERT tests for new modules created. Changes: - Extract file handling into its own module (file-config) - Extract keyboard macro management into its own module (keyboard-macros) - Extract buffer burying (instead of killing) into its own module (undead-buffers) - Extract all date/time config into its own module (chrono-tools) - Moved keybinding discovery functionality and help into keybindings module - Combine flyspell and abbrev (spell-check and autocorrect) to flyspell-and-abbrev.el - Rename epa-config.el to auth-config.el for auth-source and epa settings. - Refactor `cj/kill-other-window` for more accurate buffer handling. - Include "*ert*" in the default bury (don't kill) list as killing it kills test runs. - Bind C-c M-m to inhibit-mouse-mode - Remove the unused ledger-file variable in user-constants.el. - Removed obsolete C-x x m, C-x x r, and C-x x d key mappings. - C-; b r to call cj/rename-buffer-and-file instead of typo’d function - Other purely cosmetic comment changes to system-utils.el ERT tests: - Rename ERT test definitions to include module scopes (file-config, keyboard-macros) - Add an ERT test for the timer bell's existence. - Add ERT tests to cover `cj/kill-buffer-or-bury-alive`, prefix-arg behavior, window-killing commands, and bulk operations. - Add test `authinfo-file` exists Missing authinfo triggers a debug message - Add test that `gpg2` executable is on the user’s PATH - Remove outdated authinfo test. - Add “Run these tests” note where missing.
Diffstat (limited to 'modules/auth-config.el')
-rw-r--r--modules/auth-config.el57
1 files changed, 57 insertions, 0 deletions
diff --git a/modules/auth-config.el b/modules/auth-config.el
new file mode 100644
index 000000000..43849f20f
--- /dev/null
+++ b/modules/auth-config.el
@@ -0,0 +1,57 @@
+;; auth-config.el --- Configuration for Authentication Utilities -*- lexical-binding: t; -*-
+;; author Craig Jennings <c@cjennings.net>
+
+;;; Commentary:
+;;
+;; Configuration for Emacs authentication and GPG integration:
+
+;; • auth-source
+;; – Forces use of your default authinfo file
+;; – Disable external GPG agent in favor of Emacs’s own prompt
+;; – Enable auth-source debug messages
+
+;; • Easy PG Assistant (epa)
+;; – Force using the ‘gpg2’ executable for encryption/decryption operations
+
+;;; Code:
+
+(require 'user-constants) ;; defines authinfo-file location
+
+;; -------------------------------- Auth Sources -------------------------------
+;; auth sources settings
+
+(use-package auth-source
+ :ensure nil ;; built in
+ :demand t ;; load this package immediately
+ :config
+ (setq auth-sources `(,authinfo-file))
+ (setenv "GPG_AGENT_INFO" nil) ;; emacs use internal prompt, not gpg agent
+ (setq auth-source-debug t)) ;; echo debug info to Messages
+
+;; ----------------------------- Easy PG Assistant -----------------------------
+;; Key management, cryptographic operations on regions and files, dired
+;; integration, and automatic encryption/decryption of *.gpg files.
+
+(use-package epa
+ :ensure nil ;; built-in
+ :defer .5
+ :config
+ (setq epg-gpg-program "gpg2")) ;; force use gpg2 (not gpg v.1)
+
+(provide 'auth-config)
+;;; auth-config.el ends here.
+
+;; --------------------------------- ERT Tests ---------------------------------
+;; Run these tests with M-x ert RET t RET
+
+(require 'ert)
+(require 'cl-lib)
+
+(ert-deftest auth-config/authinfo-file-exists ()
+ "Verify that `authinfo-file` actually exists on disk."
+ (should (and (stringp authinfo-file)
+ (file-exists-p authinfo-file))))
+
+(ert-deftest auth-config/gpg2-is-on-path ()
+ "Verify that the `gpg2` executable is on the user’s PATH."
+ (should (executable-find "gpg2")))