From 9c72284b1d0c85ce9c1f8cc71f1492948a82114a Mon Sep 17 00:00:00 2001 From: cage Date: Thu, 25 May 2023 15:44:07 +0200 Subject: [PATCH] - improved installation script to use a proxy, if needed; - addded fetching two more libraries from git instead than from quicklisp. --- quick_quicklisp.sh.in | 79 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 66 insertions(+), 13 deletions(-) diff --git a/quick_quicklisp.sh.in b/quick_quicklisp.sh.in index 5528ff7..bb3e778 100644 --- a/quick_quicklisp.sh.in +++ b/quick_quicklisp.sh.in @@ -41,24 +41,40 @@ CROATOAN_DIR="$QUICKLISP_INSTALL_DIR"/local-projects/croatoan/ CROATOAN_COMMIT=efa628759d12d992ae3976e6b72c61e075ce8f71 +CL_COLORS2_GIT_URL=https://notabug.org/cage/cl-colors2.git + +CL_COLORS2_DIR="$QUICKLISP_INSTALL_DIR"/local-projects/cl-colors2/ + +NODGUI_GIT_URL=https://notabug.org/cage/nodgui.git + +NODGUI_DIR="$QUICKLISP_INSTALL_DIR"/local-projects/nodgui/ + echo_bold () { printf "\033[1m%s\033[0m\n" "$1" } -check_croatoan (){ - if [ -d "$CROATOAN_DIR" ]; then +check_dir (){ + if [ -d "$1" ]; then echo 0; else echo 1; fi } +check_croatoan (){ + check_dir "$CROATOAN_DIR" +} + check_quicklisp () { - if [ -d "$QUICKLISP_INSTALL_DIR" ]; then - echo 0; - else - echo 1; - fi + check_dir "$QUICKLISP_INSTALL_DIR" +} + +check_cl_colors2 () { + check_dir "$CL_COLORS2_DIR" +} + +check_nodgui () { + check_dir "$NODGUI_DIR" } check_quicklisp_signature () { @@ -70,6 +86,17 @@ check_quicklisp_signature () { printf "%s" "$res" } +QUICKLIST_INSTALL_FORM="(quicklisp-quickstart:install)" + +if [ "$1" = "--proxy" ] ; then + QUICKLIST_INSTALL_FORM="(quicklisp-quickstart:install :proxy \"$2\")" +fi + +if [ "$2" = "--proxy" ] ; then + QUICKLIST_INSTALL_FORM="(quicklisp-quickstart:install :proxy \"$3\")" +fi + + install_quicklisp () { echo_bold "Downloading quicklisp..." @CURL@ "$QUICKLISP_URL" > $QUICKLISP @@ -86,12 +113,12 @@ install_quicklisp () { echo_bold "Key sucessfully verified." if test "$1" = "" ; then @LISP_COMPILER@ --load $QUICKLISP \ - --eval "(quicklisp-quickstart:install)" \ + --eval "$QUICKLIST_INSTALL_FORM" \ --eval "(ql:add-to-init-file)" \ --eval "(sb-ext:quit)"; else @LISP_COMPILER@ --load $QUICKLISP \ - --eval "(quicklisp-quickstart:install)" \ + --eval "$QUICKLIST_INSTALL_FORM" \ --eval "(ql-util:without-prompting (ql:add-to-init-file))" \ --eval "(sb-ext:quit)"; fi @@ -116,19 +143,40 @@ install_dependency () { install_croatoan () { installedp=$(check_croatoan); - if [ $installedp -eq 0 ]; then + if [ "$installedp" -eq 0 ]; then cd "$CROATOAN_DIR" && @GIT@ pull else - cd "$QUICKLISP_INSTALL_DIR"/local-projects/ && @GIT@ clone "$CROATOAN_GIT_URL" + cd "$QUICKLISP_INSTALL_DIR"/local-projects/ && @GIT@ clone "$CROATOAN_GIT_URL" fi cd "$CROATOAN_DIR" && @GIT@ checkout "$CROATOAN_COMMIT" } +install_from_git () { + cd "$QUICKLISP_INSTALL_DIR"/local-projects/ && @GIT@ clone "$1" +} + +install_cl_colors2 () { + installedp=$(check_cl_colors2); + if [ "$installedp" -eq 0 ]; then + cd "$CL_COLORS2_DIR" && @GIT@ pull + else + install_from_git $CL_COLORS2_GIT_URL + fi +} + +install_nodgui () { + installedp=$(check_nodgui); + if [ "$installedp" -eq 0 ]; then + cd "$NODGUI_DIR" && @GIT@ pull + else + install_from_git $NODGUI_GIT_URL + fi +} quicklisp_installed_p=$(check_quicklisp) -if [ $quicklisp_installed_p -eq 0 ]; then +if [ "$quicklisp_installed_p" -eq 0 ]; then echo_bold "Quicklisp already installed; fetching libraries..." install_dependency else @@ -141,7 +189,12 @@ else fi echo_bold "installing croatoan from git repository..." - install_croatoan +echo_bold "installing cl-colors2 from git repository..." +install_cl_colors2 + +echo_bold "installing nodgui from git repository..." +install_nodgui + echo_bold "Finished."