;;;;;
title: Hello, Cask
tags: emacs, config, cask
date: 2014-01-31 23:17
format: md
;;;;;

I've been very resistant to looking at [Cask](http://cask.github.io/).
I felt that, much like for example el-get, it was trying to re-solve a
problem that has been solved by ELPA since Emacs v24 in a way
incompatible with ELPA.

I have finally looked at it, and to my pleasant surprise it works
*with* ELPA instead of beside it, as a wrapper adding some extra
functionality. Using and supporting Cask doesn't mean you don't
support ELPA. And theoretically using Cask does open up possibilities
for development by creating separate development environments (package
wise), though I haven't tried this out yet.

I've switched over my configuration to using Cask, which will also
help me keep the configuration on my laptop synchronized more easily.

Aside from a fairly long Cask file, making it work is pretty simple,
as the website [suggests](http://cask.github.io/usage/).

``` emacs-lisp
(eval-and-compile
  (require 'cask "~/projects/ext/cask/cask.el")
  (cask-initialize))
```

I add an `eval-and-compile` so the external process compiling my
`init.el` doesn't complain about not being able to load ELPA-installed
packages.

Now instead of starting up Emacs, running `M-x list-packages`,
pressing `U` and then `X` (and `y` at least once) it's a matter of

    cd ~/.emacs.d
    cask update

Much easier.

<!-- Local Variables: -->
<!-- mode: markdown -->
<!-- End: -->
