diff options
author | Sven Schneider | 2012-10-08 22:48:57 +0200 |
---|---|---|
committer | Sven Schneider | 2012-10-08 22:48:57 +0200 |
commit | 24f758390808c2ed50d1a904fedcb998c783c71e (patch) | |
tree | 76d89be06c833a7da0287e99a7c3812ee8bca74e /shop2.install | |
download | aur-cl-shop2.tar.gz |
cl-shop2: added
Diffstat (limited to 'shop2.install')
-rw-r--r-- | shop2.install | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/shop2.install b/shop2.install new file mode 100644 index 000000000000..f92694197375 --- /dev/null +++ b/shop2.install @@ -0,0 +1,86 @@ +_pkgname=shop2 +_compile_log=n +_lisp=() + +if pacman -Qq clisp &>/dev/null || + pacman -Qq clisp-gtk2 &>/dev/null || + pacman -Qq clisp-new-clx &>/dev/null; then + _lisp=(${_lisp[@]} 'clisp') +fi +if pacman -Qq sbcl &>/dev/null; then + _lisp=(${_lisp[@]} 'sbcl') +fi +if pacman -Qq cmucl &> /dev/null; then + _lisp=(${_lisp[@]} 'cmucl') +fi +if pacman -Qq ecl &> /dev/null; then + _lisp=(${_lisp[@]} 'ecl') +fi + +_compile_sbcl() { + sbcl --noinform --no-sysinit --no-userinit \ + --eval "(require :asdf)" \ + --eval "(pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)" \ + --eval "(asdf:operate 'asdf:compile-op '${_pkgname})" \ + --eval "(quit)" &> ${_compile_log_file} || return 1 +} +_compile_clisp() { + clisp --silent -norc -x \ + "(load #p\"/usr/share/common-lisp/source/asdf/asdf.lisp\") + (pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal) + (asdf:operate 'asdf:compile-op '${_pkgname}) + (quit)" &> ${_compile_log_file} || return 1 +} +_compile_cmucl() { + cmucl -quiet -nositeinit -noinit -eval \ + "(load #p\"/usr/share/common-lisp/source/asdf/asdf.lisp\") + (pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal) + (asdf:operate 'asdf:compile-op '${_pkgname}) + (quit)" &> ${_compile_log_file} || return 1 +} + +_compile_ecl() { + ecl -q --norc \ + --eval "(require :asdf)" \ + --eval "(pushnew #p\"/usr/share/common-lisp/systems/\" asdf:*central-registry* :test #'equal)" \ + --eval "(asdf:operate 'asdf:compile-op '${_pkgname})" \ + --eval "(quit)" &> ${_compile_log_file} || return 1 +} + +# arg 1: the new package version +post_install() { + for _lispiter in ${_lisp[@]}; do + echo "---> Compiling lisp files using ${_lispiter} <---" + if [ $_compile_log = 'y' ]; then + _compile_log_file=/tmp/${_pkgname}_${_lispiter}.log + else + _compile_log_file=/dev/null + fi + _compile_${_lispiter} + echo "---> Done compiling lisp files (using ${_lispiter}) <---" + done + + cat << EOM + + To load this library, run the following lines + (require :asdf) + (require :${_pkgname}) +EOM +} + +post_upgrade() { + post_install +} + +pre_remove() { + rm -f /usr/share/common-lisp/source/${_pkgname}/{*.fas,*.fasl,*.lib,*.x86f} +} + +pre_upgrade() { + pre_remove +} + +op=$1 +shift + +$op $* |