blob: c390ffbb5b8ff3a8989df57e316ff4d8bdd1d8ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
;;; local-repository.el --- local repository functionality -*- lexical-binding: t; coding: utf-8; -*-
;; author Craig Jennings <c@cjennings.net>
;;; Commentary:
;;; Code:
(require 'elpa-mirror)
;; ------------------------------ Utility Function -----------------------------
(defun car-member (value list)
"Check if VALUE exists as the car of any cons cell in LIST."
(member value (mapcar #'car list)))
;; ------------------------------- Customizations ------------------------------
(defcustom localrepo-repository-id "localrepo"
"The name used to identify the local repository internally.
Used for the package-archive and package-archive-priorities lists.")
(defcustom localrepo-repository-priority 100
"The value for the local repository in the package-archive-priority list.
A higher value means higher priority. If you want your local packages to be
preferred, this must be a higher number than any other repositories.")
(defcustom localrepo-repository-location
(concat user-emacs-directory "/.localrepo")
"The location of the local repository.
It's a good idea to keep this with the rest of your configuration files and
keep them in source control.")
(defun cj/update-localrepo-repository ()
"Update the local repository with currently installed packages."
(interactive)
(elpamr-create-mirror-for-installed localrepo-repository-location t))
(defun localrepo-initialize ()
"Add the repository to the package archives, then gives it a high priority."
(unless (car-member localrepo-repository-id package-archives)
(add-to-list 'package-archives
(localrepo-repository-id . localrepo-repository-location)))
(unless (car-member localrepo-repository-id package-archive-priorities)
(add-to-list 'package-archive-priorities
(localrepo-repository-id . localrepo-repository-priority))))
(provide 'local-repository)
;;; local-repository.el ends here.
|