-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.el
56 lines (44 loc) · 1.58 KB
/
build.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
;; Build file for setting up dot-files
(require 'org)
(require 'ob)
(require 'ob-tangle)
;; to cleanup, on the mac this is a strange dir.
(setq backup-directory-alist
`((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms
`((".*" ,temporary-file-directory t)))
(defconst bb/emacs-directory (concat (getenv "HOME") "/.emacs.d"))
(defconst bb/emacs-subdirectories '("elisp" "snippets"))
(defun bb/build-dot-files ()
(interactive)
;; Get the path to for this file.
(defconst dot-files-src
(if load-file-name
(file-name-directory load-file-name)
(file-name-directory (buffer-file-name))))
(defun bb/mkdir (target)
"Verbose make dir"
(if (not (file-directory-p target))
(progn
(mkdir target)
(message "mkdir %s" target))))
;; create $HOME/.emacs.d and subdirectories
(bb/mkdir (file-name-as-directory bb/emacs-directory))
(dolist (subdir bb/emacs-subdirectories)
(let ((source (concat (file-name-as-directory dot-files-src) subdir))
(destination (concat (file-name-as-directory bb/emacs-directory) subdir)))
(unless (file-directory-p destination)
(message "Copying %s %s" source destination)
(copy-directory source destination))))
(defun bb/tangle-file (file)
"Given an 'org-mode' FILE, tangle the source code."
(interactive "fOrg File: ")
(message "tangling file %s" file)
(find-file file)
(org-babel-tangle)
(kill-buffer))
(dolist (orgfile (directory-files (concat dot-files-src "org") t "[.]org\\'"))
(message "file is %s" orgfile)
(bb/tangle-file orgfile))
)
(bb/build-dot-files)