(defun riece-resolve-addons (addons)
(riece-resolve-addon-dependencies
- (append addons
- (mapcar
- (lambda (name)
- (intern (file-name-sans-extension name)))
- (directory-files riece-addon-directory nil "\\`[^.]" t t)))))
+ (if (file-directory-p riece-addon-directory)
+ (append addons
+ (mapcar
+ (lambda (name)
+ (unless (file-directory-p
+ (expand-file-name name riece-addon-directory))
+ (intern (file-name-sans-extension name))))
+ (directory-files riece-addon-directory nil "\\`[^.]" t)))
+ addons)))
(defun riece-insinuate-addon (addon &optional verbose)
- (require addon) ;implicit dependency
- (funcall (intern (concat (symbol-name addon) "-insinuate")))
- (if verbose
- (message "Add-on %S is insinuated" addon)))
+ (if (get addon 'riece-addon-insinuated)
+ (if verbose
+ (message "Add-on %S is alread insinuated" addon))
+ (funcall (intern (concat (symbol-name addon) "-insinuate")))
+ (put addon 'riece-addon-insinuated t)
+ (if verbose
+ (message "Add-on %S is insinuated" addon))))
(defun riece-enable-addon (addon &optional verbose)
(let ((enabled (intern-soft (concat (symbol-name addon) "-enabled"))))
(message "Add-on %S doesn't support enable/disable" addon))
(if (symbol-value enabled)
(if verbose
- (message "Can't enable add-on %S" addon))
+ (message "Add-on %S is already enabled" addon))
(funcall (intern (concat (symbol-name addon) "-enable")))
(if verbose
(message "Add-on %S enabled" addon))))))
(if verbose
(message "Add-on %S disabled" addon)))
(if verbose
- (message "Can't disable add-on %S" addon))))))
+ (message "Add-on %S is already enabled" addon))))))
(put 'riece-addon-list-mode 'font-lock-defaults
'(riece-addon-list-font-lock-keywords t))