dotfiles/install-packages.el

45 lines
2.1 KiB
EmacsLisp

;;; install-packages.el
;; Author: Rachel Fae Fox <fox@foxiepa.ws>
;; URL: https://git.foxiepa.ws/foxiepaws/dotfiles/
(add-to-list 'load-path (expand-file-name "~/.emacs.d/defaultcontent/"))
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3")
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://melpa.org/packages/") t)
(package-initialize)
(defvar eyecandy '(smex abyss-theme airline-themes powerline powerline-evil
rainbow-delimiters purple-haze-theme org-beautify-theme))
(defvar osx '(osx-plist osx-dictionary osx-clipboard osx-browse swift-mode
swift-playground-mode swift3-mode swift-helpful osx-lib osx-trash))
(defvar orgstuff '(org org-journal org-journal-list org-kindle org-multi-wiki org-projectile org-wc ego
org-analyzer org-board org-d20 org-ac
org-brain org-clock-today org-gcal org-static-blog org-sync
org-sync-snippets org-timeline org-trello))
(defvar langs '(python racket-mode yaml-mode nixpkgs-fmt nix-mode haskell-mode elixir-mode
arduino-mode qml-mode qt-pro-mode))
(defvar evil '(evil evil-leader evil-org evil-smartparens evil-surround evil-collection))
(defvar extras '(magit elscreen projectile flx flx-ido diminish diminish-buffer neotree
paradox use-package editorconfig editorconfig-custom-majormode))
(defvar progtools '(flycheck ac-c-headers ac-html ac-html-bootstrap elixir-yasnippets ac-clang
auto-complete-distel auto-complete-c-headers auto-complete-exuberant-ctags
yasnippet-classic-snippets yasnippet-snippets snippet))
(defvar projectmanagement '(projectile projectile-rails projectile-codesearch projectile-variable project-shells))
(let ((my-packages (append eyecandy osx orgstuff langs evil extras progtools projectmanagement)))
(defun my-packages-installed-p ()
(cl-loop for p in my-packages
when (not (package-installed-p p)) do (cl-return nil)
finally (cl-return t)))
(unless (my-packages-installed-p)
;; check for new packages (package versions)
(package-refresh-contents)
;; install the missing packages
(dolist (p my-packages)
(when (not (package-installed-p p))
(package-install p)))))