
;;; For usage information, see README

(defcustom elisp-start-dir "~/emacs-lisp/start"
  "where is the elisp-start directory")
(defun elisp-start-file (f) (concat elisp-start-dir "/" f))

(defun elisp-search-file (f)
  (let ((d load-path)
	(dir nil)
        (r nil))
    (while d
      (set 'dir (car d))
      (set 'd (cdr d))
      (let ((e '(".elc" ".el" ""))
	    (ext nil))
        (while e
	  (set 'ext (car e))
	  (set 'e (cdr e))
          (let ((l (format "%s/%s%s" dir f ext)))
            (if (file-exists-p l)
                (progn
                  (set 'd nil)
                  (set 'e nil)
                  (set 'r l)))))))
    r))

(defun load-start-file (f)
  "Load file f as a startup-file"
  (if (not (load (elisp-start-file f) t))
      (message "WARNING: could not load start-file: %s" f)))

;;; customize group for startup options
(defgroup start nil
  "startup options"
  :group 'emacs)

(let ((addon-dir (concat elisp-start-dir "/../addon")))
  (add-to-list 'load-path addon-dir)
  (byte-recompile-directory elisp-start-dir)
  (byte-recompile-directory addon-dir))
(let ((files (directory-files elisp-start-dir nil ".*\\.el\\'")))
  (while files
    (let ((f (car files)))
      (setq files (cdr files))
      (let ((lf (substring f 0 (- (length f) 3))))
        (condition-case var
            (load-start-file lf)
          (error (message "loading: %s, got:\n%S" lf var)))))))
