about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/wpc/fs-functions.el
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2018-09-10T18·51-0400
committerWilliam Carroll <wpcarro@gmail.com>2018-09-10T18·53-0400
commit17ee0e400bef47c371afcae76037f9ea6a44ad13 (patch)
tree0e5efee6f00e402890e91f3eceb4b29408a498b6 /configs/shared/emacs/.emacs.d/wpc/fs-functions.el
parent8b2fadf4776b7ddb4a67b4bc8ff6463770e56028 (diff)
Support Vim, Tmux, Emacs with Stow
After moving off of Meta, Dotfiles has a greater responsibility to
manage configs. Vim, Tmux, and Emacs are now within Stow's purview.
Diffstat (limited to 'configs/shared/emacs/.emacs.d/wpc/fs-functions.el')
-rw-r--r--configs/shared/emacs/.emacs.d/wpc/fs-functions.el28
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