summaryrefslogtreecommitdiff
path: root/vagrant/provision.sh
blob: 452e22f7c6556fd67a87effaf83e1e003ff7368f (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
51
52
53
54
#!/bin/sh

ppa () {
    sudo apt-add-repository -y "$1"
}

apt_update () {
    sudo apt-get update -qq
}

apt () {
    sudo apt-get install -yy "$@"
}

install_emacs() {
    # no EMACS version is specified use snapshot.
    if [ -z $EMACS_BINARY ];then
        export EMACS_BINARY=emacs-snapshot
    fi
    echo $EMACS_BINARY

    if [ $EMACS_BINARY = "emacs-snapshot" ]; then
        ppa ppa:ubuntu-elisp/ppa
        apt_update
        apt emacs-snapshot emacs-snapshot-el
    else
        apt_update
        apt git
        # evm install
        sudo mkdir -p /usr/local/evm
        sudo chown $USER: /usr/local/evm
        curl -fsSkL https://raw.github.com/rejeep/evm/master/go | bash
        export PATH=$HOME/.evm/bin:$PATH
        evm install $EMACS_BINARY
        evm use $EMACS_BINARY
    fi
}

# Silence debconf
export DEBIAN_FRONTEND='noninteractive'

install_emacs
emacs --version

# Install Cask for Emacs dependency management
CASK_VERSION=0.7.2
CASK_DIR=/opt/cask-$CASK_VERSION
CASK_ARCHIVE=https://github.com/cask/cask/archive/v$CASK_VERSION.tar.gz
if ! [ -d "$CASK_DIR" -a -x "/$CASK_DIR/bin/cask" ]; then
    sudo rm -rf "$CASK_DIR"
    wget -q -O - $CASK_ARCHIVE | sudo tar xz -C /opt
    # Bring Cask into $PATH
    sudo ln -fs "$CASK_DIR/bin/cask" /usr/local/bin
fi