This is part of the Emacs Starter Kit.
Emacs List Package Archive (ELPA)
The following packages should always be installed
(defvar starter-kit-packages (list 'rainbow-delimiters
'color-identifiers-mode
'highlight-symbol
'package-utils ;;package-utils-upgrade-all
'fuzzy
'ggtags ;; Tagging
'ripgrep
'smex
'browse-kill-ring
'ace-jump-mode
'org ;; Org packages
'org-ac
'neotree
'undo-tree
'expand-region
'find-file-in-project
'yasnippet
'yasnippet-bundle
's ;;For prodigy, projectile, kit-defuns
'helm
'helm-projectile
;; Company
'company
;;ibuffer-vc
'ibuffer-vc
;; Workgroups libs
'workgroups2
'projectile
'flycheck
'flycheck-color-mode-line
'yaml-mode
'smart-shift
'e2wm
'prodigy)
"Libraries that should be installed by default.")
(defun starter-kit-elpa-install ()
"Install all starter-kit packages that aren't installed."
(interactive)
(dolist (package starter-kit-packages)
(unless (or (member package package-activated-list)
(functionp package))
(message "Installing %s" (symbol-name package))
(package-install package))))
(defun esk-online? ()
"See if we're online.
Windows does not have the network-interface-list function, so we
just have to assume it's online."
;; TODO how could this work on Windows?
(if (and (functionp 'network-interface-list)
(network-interface-list))
(some (lambda (iface) (unless (equal "lo" (car iface))
(member 'up (first (last (network-interface-info
(car iface)))))))
(network-interface-list))
t))
On your first run, this should pull in all the base packages.
(when (esk-online?)
(unless package-archive-contents (package-refresh-contents))
(starter-kit-elpa-install))
(message "------ Starter Kit Elpa loaded ------")