123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #! @BASH@
- # fulci: a program to organize your movies collection
- # Copyright (C) 2018 cage
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation, either version 3 of the License, or
- # (at your option) any later version.
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- # You should have received a copy of the GNU General Public License
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
- QUICKLISP_INSTALL_DIR=$HOME/quicklisp/
- QUICKLISP_URL="https://beta.quicklisp.org/quicklisp.lisp"
- QUICKLISP_SIG_URL="https://beta.quicklisp.org/quicklisp.lisp.asc"
- QUICKLISP_KEY_URL="https://beta.quicklisp.org/release-key.txt"
- QUICKLISP="quicklisp.lisp"
- QUICKLISP_SIG="quicklisp.lisp.asc"
- QUICKLISP_KEY="release-key"
- QUICKLISP_SIGNATURE="D7A3 +489D +DEFE +32B7 +D0E7 +CC61 +3079 +65AB +028B +5FF7";
- LISP_SOURCE_REGISTRY_DIR="$HOME/.config/common-lisp/"
- LISP_SOURCE_REGISTRY_FILE="$LISP_SOURCE_REGISTRY_DIR/source-registry.conf"
- BOLD_TEXT="\033[1m"
- NORMAL_TEXT="\033[0m"
- VERIFY_OK_RES=2
- echo_bold () {
- echo -e "${BOLD_TEXT}${1}${NORMAL_TEXT}";
- }
- check_quicklisp () {
- if [ -d "$QUICKLISP_INSTALL_DIR" ]; then
- echo 0;
- else
- echo 1;
- fi
- }
- check_quicklisp_signature () {
- chk1_prog='BEGIN {res=0} /Good signature.*release@quicklisp.org/ {res++; print res}'
- chk2_prog="BEGIN {res=0} /${QUICKLISP_SIGNATURE}/ {res++; print res}"
- res1=$(LC_MESSAGES="C" @GPG@ --verify quicklisp.lisp.asc quicklisp.lisp 2> >(@GAWK@ -- "${chk1_prog}"))
- res2=$(@GPG@ --verify quicklisp.lisp.asc quicklisp.lisp 2> >(@GAWK@ -- "${chk2_prog}"))
- res=$(expr $res1 + $res2)
- echo -n "$res"
- }
- install_quicklisp () {
- echo_bold "Downloading quicklisp...";
- @CURL@ "$QUICKLISP_URL" > $QUICKLISP;
- @CURL@ "$QUICKLISP_SIG_URL" > $QUICKLISP_SIG;
- @CURL@ "$QUICKLISP_KEY_URL" > $QUICKLISP_KEY;
- echo_bold "Importing gpg key.";
- @GPG@ --import $QUICKLISP_KEY;
- echo_bold "Verifing key";
- signature_verified=$(check_quicklisp_signature);
- if [ "$signature_verified" -ne $VERIFY_OK_RES ]; then
- echo_bold "Key verification failed!"
- exit 1;
- else
- echo_bold "Key sucessfully verified.";
- @LISP_COMPILER@ --load $QUICKLISP \
- --eval "(quicklisp-quickstart:install)" \
- --eval "(ql:add-to-init-file)" \
- --eval "(sb-ext:quit)";
- @MKDIR_P@ -p $LISP_SOURCE_REGISTRY_DIR;
- PAR_PWD="${PWD%/*}";
- echo "(:source-registry" > $LISP_SOURCE_REGISTRY_FILE;
- echo " (:tree \"$PAR_PWD\")" >> $LISP_SOURCE_REGISTRY_FILE;
- echo ":inherit-configuration)" >> $LISP_SOURCE_REGISTRY_FILE;
- echo "quicklisp installed";
- fi
- }
- install_dependency () {
- # add here the lisp dependency
- # e.g.
- # @LISP_COMPILER@ \ <- note the '\'
- # --eval "(ql:quickload \"swank\")" \ <- note the '\'
- # --eval "(sb-ext:quit)"; <- keep this line as latest
- @LISP_COMPILER@ \
- --eval "(ql:quickload \"alexandria\")" \
- --eval "(ql:quickload \"access\")" \
- --eval "(ql:quickload \"cl-ppcre\")" \
- --eval "(ql:quickload \"cl-syntax\")" \
- --eval "(ql:quickload \"lquery\")" \
- --eval "(ql:quickload \"osicat\")" \
- --eval "(ql:quickload \"local-time\")" \
- --eval "(ql:quickload \"cl-csv\")" \
- --eval "(ql:quickload \"cl-lex\")" \
- --eval "(ql:quickload \"yacc\")" \
- --eval "(ql:quickload \"parse-number\")" \
- --eval "(ql:quickload \"sqlite\")" \
- --eval "(ql:quickload \"sxql\")" \
- --eval "(ql:quickload \"nodgui\")" \
- --eval "(ql:quickload \"drakma\")" \
- --eval "(ql:quickload \"log4cl\")" \
- --eval "(ql:quickload \"clunit2\")" \
- --eval "(ql:quickload \"cl-colors2\")" \
- --eval "(ql:quickload \"cl-i18n\")" \
- --eval "(ql:quickload \"cl-jpeg\")" \
- --eval "(ql:quickload \"cl-json\")" \
- --eval "(ql:quickload \"osicat\")" \
- --eval "(ql:quickload \"babel\")" \
- --eval "(ql:quickload \"nodgui\")" \
- --eval "(ql:quickload \"marshal\")" \
- --eval "(ql:quickload \"cl-pslib\")" \
- --eval "(ql:quickload \"cl-pslib-barcode\")" \
- --eval "(sb-ext:quit)";
- }
- quicklisp_installed_p=$(check_quicklisp);
- if [ $quicklisp_installed_p -eq 0 ]; then
- echo_bold "Quicklisp already installed; fetching libraries...";
- install_dependency;
- else
- install_quicklisp;
- install_dependency;
- fi
- echo_bold "Finished."
|