forked from dimitri/el-get
-
Notifications
You must be signed in to change notification settings - Fork 0
/
el-get-issue-new-2.el
61 lines (47 loc) · 2.03 KB
/
el-get-issue-new-2.el
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
54
55
56
57
58
59
60
61
(require 'cl-lib)
(require 'package-x)
;;; Utility
(defun* create-package-archive (path &key name desc version)
"Creates local archive at PATH that provides signle package
with NAME, DESCRIPTION and VERSION specified according to
values provided in arguments after corresponding keys."
(cond ((not (file-exists-p path)) (mkdir path))
((or (not (file-directory-p path))
(not (file-writable-p path)))
(error "Specified path is not a writeable directory.")))
(with-temp-buffer
(insert (format ";;; %s.el --- %s" name desc) ?\n
(format ";; Version: %s" version) ?\n
(format "(provide '%s)" name) ?\n
(format ";;; %s.el ends here" name))
(let ((package-archive-upload-base path))
(package-upload-buffer))))
;;; Paths
(defconst old-archive-path
(expand-file-name "old-archive" (getenv "HOME"))
"Path to archive included into `package-archives'")
(defconst new-archive-path
(expand-file-name "new-archive" (getenv "HOME"))
"Path to archive introduced through a recipe")
;;; Archives
(create-package-archive old-archive-path
:name 'dummy-funny
:desc "This package goes in archive that was part of `package-archives'"
:version "0.3")
(create-package-archive new-archive-path
:name 'dummy-whammy
:desc "This package goes in archive that was introduced through a recipe"
:version "0.8")
;;; Recipes
(add-to-list 'el-get-sources
`(:name dummy-funny
:type elpa
:repo ("old-archive" . ,old-archive-path)))
(add-to-list 'el-get-sources
`(:name dummy-whammy
:type elpa
:repo ("new-archive" . ,new-archive-path)))
;; Only old-archive is specified in `package-archives' and will remain
;; active regardless of recipe.
(setq package-archives `(("old-archive" . ,old-archive-path)))
(el-get 'sync '(dummy-whammy dummy-funny))