summaryrefslogtreecommitdiffstats
path: root/blog/blog-2012-06-28-2128.org
blob: 80501f5af45458c5214361fc0802be2743da178d (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
#+TITLE: New config project

After [[http://sachachua.com/blog/2012/06/literate-programming-emacs-configuration-file/][reading]] that it was very easy to use [[http://en.wikipedia.org/wiki/Literate_programming][Literate Programming]] for
one's emacs init file and discovering that it's also a lot of fun to
do, I was thinking that I could easily use this for all my
configuration files.

Of course, not all programs have [[http://orgmode.org/worg/org-contrib/babel/][~org-babel~]], so they can't all have
something like this in their init file:

#+begin_src emacs-lisp
  (require 'org)
  (require 'ob-tangle)

  (org-babel-load-file "~/.emacs.d/rinit.org")
#+end_src

Which, for emacs, tangles (extracts the code) and then loads the
generated file. So something else has to be done.

On the other side of things, I, fairly recently, had a run-in with
some Makefiles, which got me thinking that ~make~ is a very interesting
tool and that it could be used to help with a lot of other tasks as
well, much like I perceive Rake does. I just wasn't able to find where
exactly it would fit (other than, of course, as compilation
instructions for my projects).

Now, yesterday I got the idea of using ~org-mode~ to literate-program
all my configuration files and then use ~make~ to tangle and install
them. This would mean that I could easily keep documentation about
decisions in configuration files and such in an easy to read format,
easily export these files to somewhere on the web and practice my ~make~
skills to make everything easy.

[[http://code.ryuslash.org/?p=newdot.git;a=tree][Here]] is the result. I'm still working on it, as you can see my emacs
init file still has a long way to go, my focus is on getting it in
~org-mode~ first and actually get it well-documented later. I've
published it [[http://org.ryuslash.org/dotfiles/][here]], what I have at least, in case you would like to
read about my mostly uninteresting configuration files.