dotemacs

My Emacs configuration
git clone git://git.entf.net/dotemacs
Log | Files | Refs | LICENSE

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