diff --git a/users/crumb/programs/emacs/modules/syd-projects.el b/users/crumb/programs/emacs/modules/syd-projects.el index 4752f4e..865fa95 100755 --- a/users/crumb/programs/emacs/modules/syd-projects.el +++ b/users/crumb/programs/emacs/modules/syd-projects.el @@ -55,6 +55,19 @@ "n" #'skeletor-create-project "N" #'skeletor-create-project-at) :config + ;; TODO: Fix the `ns' form in Clojure files. + (defun syd-fix-clojure-file-name! (file-name) + (let ((new-file-name (->> file-name + (string-replace "-" "_") + ;; NOTE: Will cause fuckiness if file-name starts + ;; with a dot. + (string-replace "." "/")))) + (make-directory (file-name-directory new-file-name) t) + (rename-file file-name new-file-name))) + (defun syd-fix-clojure-file-names! (directory) + (let ((default-directory (file-name-concat directory "src"))) + (dolist (file-name (directory-files "." nil "-" t)) + (syd-fix-clojure-file-name! file-name)))) (skeletor-define-template "clj-nix" :substitutions '(("__PROJECT-OWNER__" . (lambda () @@ -62,11 +75,7 @@ :before-git (lambda (dir) ;; Use underscores instead of hyphens in clj file names. - (let ((default-directory (file-name-concat dir "src"))) - (dolist (f (directory-files "." nil "-" t)) - (rename-file - f - (string-replace "-" "_" f)))) + (syd-fix-clojure-file-names! dir) ;; REVIEW: Is it safe to make this be async? We require that the command ;; has finished before Git initialises. (skeletor-shell-command "nix run github:jlesquembre/clj-nix#deps-lock"