;;; init-load-path.el (fset '! 'eval-when-compile) (defconst narf-emacs-dir user-emacs-directory) (defconst narf-core-dir (concat narf-emacs-dir "core/")) (defconst narf-modules-dir (concat narf-emacs-dir "modules/")) (defconst narf-contrib-dir (concat narf-emacs-dir "contrib/")) (defconst narf-private-dir (concat narf-emacs-dir "private/")) (defconst narf-elpa-dir (concat narf-emacs-dir ".cask/" emacs-version "/elpa/")) (defconst narf-temp-dir (concat narf-private-dir "cache/" (system-name) "/")) (defconst narf-script-dir (concat narf-emacs-dir "scripts/")) (defconst narf-snippet-dirs (list (concat narf-private-dir "snippets/") (concat narf-private-dir "templates/"))) (! (defun --subdirs (path) (let ((result '()) (paths (ignore-errors (directory-files path t "^[^.]" t)))) (dolist (file paths) (when (file-directory-p file) (add-to-list 'result file))) result))) ;; Scan various folders to populate the load-dirs (setq custom-theme-load-path (! (append (--subdirs (concat narf-private-dir "themes/")) custom-theme-load-path))) (setq load-path (! (require 'cask) (cask-initialize) (setq load-path (append (list narf-core-dir narf-contrib-dir narf-modules-dir narf-private-dir) (list (concat narf-core-dir "lib")) (list (concat narf-modules-dir "lib")) (--subdirs narf-contrib-dir) load-path)))) (defconst IS-MAC (eq system-type 'darwin)) (defconst IS-LINUX (eq system-type 'gnu/linux)) (defconst IS-WINDOWS (eq system-type 'windows-nt)) ;;; init-load-path.el ends here