install-cask.sh (1809B)
1 #!/bin/bash 2 3 # Install cask for Travis CI 4 # or if already installed, then check for updates 5 # Author: gonewest818 https://github.com/clojure-emacs/cider/pull/2139 6 7 set -x 8 9 WORKDIR=${HOME}/local 10 CASKDIR=$WORKDIR/cask 11 12 . tools/retry.sh 13 14 update_elpa_keys() { 15 mkdir -p $HOME/.emacs.d/elpa/gnupg || true 16 chmod 700 $HOME/.emacs.d/elpa/gnupg 17 GPG=gpg 18 if which gpg2 ; then 19 GPG=gpg2 20 fi 21 for i in 1 2 3 ; do 22 if ${GPG} -q --homedir $HOME/.emacs.d/elpa/gnupg -k | grep 81E42C40 ; then 23 return 0 24 fi 25 if [ $i -gt 1 ] ; then 26 sleep 5 27 fi 28 ${GPG} --keyserver hkp://ipv4.pool.sks-keyservers.net --homedir $HOME/.emacs.d/elpa/gnupg --recv-keys 066DAFCB81E42C40 29 done 30 return 1 31 } 32 33 copy_keys() { 34 mkdir -p $(cask package-directory) || true 35 mkdir -p $HOME/.cask || true 36 rsync -azSHe ssh $HOME/.cask $(dirname $(dirname $(dirname $(cask package-directory)))) 37 rsync -azSHe ssh $HOME/.emacs.d/elpa/gnupg $(cask package-directory) 38 } 39 40 cask_upgrade_cask_or_reset() { 41 cask upgrade-cask || { rm -rf $HOME/.emacs.d/.cask && false; } 42 } 43 44 cask_install_or_reset() { 45 cask install </dev/null 46 find $(cask package-directory)/archives -print | xargs ls -l 47 find $(cask package-directory)/gnupg -print | xargs ls -l 48 49 # travis cache 50 rsync -azSHe ssh $(dirname $(dirname $(cask package-directory))) $HOME/ 51 } 52 53 # Bootstrap the cask tool and its dependencies 54 if [ ! -d $CASKDIR ] ; then 55 git clone https://github.com/cask/cask.git $CASKDIR 56 fi 57 58 # Install dependencies for cider as described in ./Cask 59 # Effect is identical to "make elpa", but here we can retry 60 # in the event of network failures. 61 update_elpa_keys 62 copy_keys 63 travis_retry cask_upgrade_cask_or_reset 64 travis_retry cask_install_or_reset && touch elpa-emacs