about summary refs log blame commit diff
path: root/configs/shared/emacs/.emacs.d/wpc/fs-functions.el
blob: 9ca970c242c37c39fce11c81a3b14beab4e39dd9 (plain) (tree)
1
2
3
4
5
6
7






                                                                                                        
















                                                                        
;;; 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:
(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