diff options
Diffstat (limited to 'configs/shared/emacs/.emacs.d/wpc/fs-functions.el')
-rw-r--r-- | configs/shared/emacs/.emacs.d/wpc/fs-functions.el | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/wpc/fs-functions.el b/configs/shared/emacs/.emacs.d/wpc/fs-functions.el new file mode 100644 index 000000000000..1ceacfaed2c7 --- /dev/null +++ b/configs/shared/emacs/.emacs.d/wpc/fs-functions.el @@ -0,0 +1,28 @@ +;;; fs-functions.el --- Functions to make working with the filesystem easier. -*- lexical-binding: t -*- +;; Author: William Carroll <wpcarro@gmail.com> + +;;; Commentary: +;; Hosts ergonomic functions for working with a filesystem. + +;;; Code: + +(require 'dash) +(require 'f) + +(defun ensure-file-path (path) + "Ensure that a file and its directories in PATH exist. +Will error for inputs with a trailing slash." + (when (s-ends-with? "/" path) + (error (format "Input path has trailing slash: %s" path))) + (let ((dirs (->> path f-dirname f-split))) + (apply #'f-mkdir dirs) + (f-touch path))) + +(defun ensure-dir-path (path) + "Ensures that a directory and its ancestor directories in PATH exist." + (->> path + f-split + (apply #'f-mkdir))) + +(provide 'fs-functions) +;;; fs-functions.el ends here |