blob: bb8c2770cb2c8aacce3c1ecfdcf81f31c30d56a5 (
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
|
;;; local-repository.el --- local repository functionality -*- lexical-binding: t; -*-
;;; 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 localrepo-update-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.
|