Skip to content

Commit 5db0aec

Browse files
committed
Use evm to setup emacs.
1 parent e27a1dd commit 5db0aec

File tree

7 files changed

+96
-84
lines changed

7 files changed

+96
-84
lines changed

.travis.yml

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
11
language: emacs-lisp
2-
sudo: true
3-
cache:
4-
directories:
5-
- $HOME/.emacs
6-
- $HOME/.cask
7-
- $TRAVIS_BUILD_DIR/.cask
2+
sudo: required
3+
matrix:
4+
fast_finish: true
85
env:
96
global:
10-
- PATH=$PATH:$HOME/.cask/bin:$HOME/.emacs/emacs-24.3/bin:$HOME/.emacs/emacs-24.4/bin:$HOME/.emacs/emacs-24.5/bin
7+
- PATH=$HOME/.evm/bin:$HOME/.cask/bin:$PATH
8+
matrix:
9+
- EVM_EMACS=emacs-24.3-travis
10+
- EVM_EMACS=emacs-24.4-travis
11+
- EVM_EMACS=emacs-24.5-travis
12+
- EVM_EMACS=emacs-git-snapshot
13+
before_install:
14+
- git clone https://github.com/rejeep/evm $HOME/.evm
15+
- git clone https://github.com/cask/cask $HOME/.cask
16+
- evm config path /tmp
1117
install:
12-
- ./scripts/deploy.sh
18+
- ./script/install_tramp.sh
19+
- if [ $EVM_EMACS = emacs-git-snapshot ];
20+
then
21+
./script/install_emacs_build_deps.sh;
22+
fi
23+
- evm install $EVM_EMACS --use
24+
- cask install
1325
script:
14-
- ./scripts/ert.sh
26+
- cask exec ert-runner -l test/interpreters/$INTERPRETER.el

Vagrantfile

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
Vagrant.configure(2) do |config|
22
config.vm.box = "ubuntu/trusty32"
33

4-
config.vm.provision "shell" do |s|
5-
s.path = "scripts/deploy.sh"
6-
s.privileged = false
7-
s.keep_color = true
4+
["install_tramp", "install_emacs_build_deps", "deploy"].each do |script|
5+
config.vm.provision "shell" do |shell|
6+
shell.path = "script/#{script}.sh"
7+
shell.privileged = false
8+
shell.keep_color = true
9+
end
810
end
911
end

scripts/bashrc

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
alias l='ls -CF'
2-
alias la='ls -A'
3-
alias ll='ls -alF'
4-
alias ls='ls --color=auto'
5-
6-
export PATH=$PATH:$HOME/.cask/bin:$HOME/.emacs/emacs-24.3/bin:$HOME/.emacs/emacs-24.4/bin:$HOME/.emacs/emacs-24.5/bin
1+
export PATH=$HOME/.evm/bin:$HOME/.cask/bin:$PATH
72

83
cd /vagrant

scripts/deploy.sh

Lines changed: 30 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,52 @@
11
#!/bin/bash -e
22

3-
if [ -n "$TRAVIS_BUILD_DIR" ]
3+
# Install evm.
4+
5+
if [ ! -d $HOME/.evm ]
46
then
5-
PROJECT_ROOT=$TRAVIS_BUILD_DIR
7+
git clone https://github.com/rejeep/evm $HOME/.evm
68
else
7-
PROJECT_ROOT=/vagrant
9+
git -C $HOME/.evm pull
810
fi
911

10-
# Create tramp user.
11-
12-
TRAMP_USER=test
13-
TRAMP_HOME=/home/$TRAMP_USER
14-
15-
sudo useradd --home $TRAMP_HOME --create-home --user-group $TRAMP_USER
16-
17-
# Register tramp host.
18-
19-
ssh-keygen -t rsa -b 4096 -f $HOME/.ssh/id_rsa -N ''
20-
touch $HOME/.ssh/known_hosts
21-
ssh-keygen -R localhost
22-
ssh-keyscan -H localhost > $HOME/.ssh/known_hosts
23-
24-
# Authorize localhost for tramp user.
25-
26-
sudo -u $TRAMP_USER mkdir -p $TRAMP_HOME/.ssh
27-
sudo -u $TRAMP_USER sh -c "echo '$(cat $HOME/.ssh/id_rsa.pub)' > $TRAMP_HOME/.ssh/authorized_keys"
12+
EVM_DIR=$HOME/.evm/versions
2813

29-
# Update mirrors list.
14+
mkdir -p $EVM_DIR
3015

31-
sudo apt-get update
16+
PATH=$HOME/.evm/bin:$HOME/.cask/bin:$PATH
3217

33-
# Install Emacs build dependencies.
18+
evm config path $EVM_DIR
3419

35-
sudo apt-get install -y libncurses-dev libxpm-dev libxaw7-dev \
36-
libtiff4-dev libpng-dev libgif-dev autoconf \
37-
automake texinfo make git
38-
39-
# Build Emacs.
40-
41-
EMACS_DIR=$HOME/.emacs
42-
EMACS_SRC=$EMACS_DIR/src
43-
EMACS_VERSIONS=(emacs-24.3 emacs-24.4 emacs-24.5)
44-
45-
mkdir -p $EMACS_DIR $EMACS_SRC
46-
47-
for VERSION in ${EMACS_VERSIONS[@]}
48-
do
49-
FILE=${VERSION}.tar.xz
50-
PREFIX=$EMACS_DIR/$VERSION
51-
cd $EMACS_SRC
52-
wget -q http://ftp.gnu.org/gnu/emacs/$FILE
53-
tar xvJf $FILE
54-
cd $VERSION
55-
./configure --prefix=$PREFIX
56-
make
57-
make install
58-
rm $PREFIX/bin/emacs
59-
done
20+
evm install emacs-24.3 --skip
21+
evm install emacs-24.4 --skip
22+
evm install emacs-24.5 --skip
23+
evm install emacs-git-snapshot --skip
6024

6125
# Install cask.
6226

63-
CASK_DIR=$HOME/.cask
64-
65-
if [ -d $CASK_DIR ]
27+
if [ ! -d $HOME/.cask ]
6628
then
67-
cd $CASK_DIR
68-
git pull
29+
git clone https://github.com/cask/cask $HOME/.cask
6930
else
70-
git clone https://github.com/cask/cask $CASK_DIR
31+
git -C $HOME/.cask pull
7132
fi
7233

73-
cd $PROJECT_ROOT
34+
evm use emacs-24.3
35+
cask --path /vagrant/ install
36+
cask --path /vagrant/ update
37+
38+
evm use emacs-24.4
39+
cask --path /vagrant/ install
40+
cask --path /vagrant/ update
7441

75-
export PATH=$PATH:$HOME/.cask/bin:$EMACS_DIR/emacs-24.3/bin:$EMACS_DIR/emacs-24.4/bin:$EMACS_DIR/emacs-24.5/bin
42+
evm use emacs-24.5
43+
cask --path /vagrant/ install
44+
cask --path /vagrant/ update
7645

77-
for VERSION in ${EMACS_VERSIONS[@]}
78-
do
79-
EMACS=$VERSION cask install
80-
EMACS=$VERSION cask update
81-
done
46+
evm use emacs-git-snapshot
47+
cask --path /vagrant/ install
48+
cask --path /vagrant/ update
8249

8350
# Copy bashrc.
8451

85-
cp $PROJECT_ROOT/scripts/bashrc $HOME/.bashrc
52+
cp /vagrant/script/bashrc $HOME/.bashrc

scripts/ert.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ function info() {
55
echo $emacs
66
}
77

8-
for emacs in emacs-24.3 emacs-24.4 emacs-24.5
8+
for emacs in emacs-24.3 emacs-24.4 emacs-24.5 emacs-git-snapshot
99
do
1010
info
11-
EMACS=$emacs cask exec ert-runner "$@"
11+
evm use $emacs
12+
cask exec ert-runner "$@"
1213
done
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#!/bin/bash -e
2+
3+
# Update mirrors list.
4+
5+
sudo apt-get update
6+
7+
# Install Emacs build dependencies.
8+
9+
sudo apt-get install -y autoconf automake build-essential git \
10+
libgif-dev libncurses5-dev libpng-dev libtiff4-dev libxpm-dev \
11+
libXaw7-dev texinfo

scripts/install_tramp.sh

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/bin/bash -e
2+
3+
# Create tramp user.
4+
5+
TRAMP_USER=test
6+
TRAMP_HOME=/home/$TRAMP_USER
7+
8+
if ! id -u $TRAMP_USER 1>/dev/null 2>&1
9+
then
10+
sudo useradd --home $TRAMP_HOME --create-home --user-group $TRAMP_USER
11+
fi
12+
13+
# Register tramp host.
14+
15+
rm -f $HOME/.ssh/id_rsa*
16+
ssh-keygen -t rsa -b 4096 -f $HOME/.ssh/id_rsa -N ''
17+
touch $HOME/.ssh/known_hosts
18+
ssh-keygen -R localhost
19+
ssh-keyscan -H localhost > $HOME/.ssh/known_hosts
20+
21+
# Authorize localhost for tramp user.
22+
23+
sudo -u $TRAMP_USER mkdir -p $TRAMP_HOME/.ssh
24+
sudo -u $TRAMP_USER sh -c "echo '$(cat $HOME/.ssh/id_rsa.pub)' > $TRAMP_HOME/.ssh/authorized_keys"

0 commit comments

Comments
 (0)