summarylogtreecommitdiffstats
path: root/shop2.install
diff options
context:
space:
mode:
authorSven Schneider2012-10-08 22:48:57 +0200
committerSven Schneider2012-10-08 22:48:57 +0200
commit24f758390808c2ed50d1a904fedcb998c783c71e (patch)
tree76d89be06c833a7da0287e99a7c3812ee8bca74e /shop2.install
downloadaur-cl-shop2.tar.gz
cl-shop2: added
Diffstat (limited to 'shop2.install')
-rw-r--r--shop2.install86
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 $*