From eacd22744bb4ecaa831f0284396a65558685b832 Mon Sep 17 00:00:00 2001 From: Sebastian Christ Date: Thu, 9 Jul 2026 10:32:21 +0200 Subject: [PATCH] Adjust install script to new installation procedure. --- .github/workflows/ci.yml | 26 +++++++++++++++----------- README.md | 31 +++++++++++++++++-------------- install.lisp | 27 +++++++++++++++++++++++++++ install.sh | 18 +++++------------- 4 files changed, 64 insertions(+), 38 deletions(-) create mode 100644 install.lisp diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 77b8559..3250b64 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -44,18 +44,22 @@ jobs: if: runner.os == 'Windows' run: choco install sbcl - - name: Install Quicklisp and ql-https - run: ./install.sh - - - name: Run tests + - name: Install ql-https and run tests env: CI: 1 run: | - sbcl < and lookup `:client-tar` URL, download it, verify - hash and untar. -3. Clone ql-https from to - to `~/common-lisp/ql-https` +2. Go to and lookup + `:client-tar` URL, download it, verify hash and untar. +3. Clone ql-https from + to to `~/common-lisp/ql-https` 4. Start a fresh REPL and (require 'asdf) 5. Load `~/common-lisp/ql-https/ql-setup.lisp` -6. Eval `(uiop:symbol-call :ql-setup :setup)` +6. Eval `(uiop:symbol-call :ql-setup :setup)`. Invoke `ql-https` + restarts as necessary. If you use an alternative install location + for quicklisp eval `(uiop:symbol-call :ql-setup :setup + #p"/path/to/quicklisp")` Removing the *Missing client-info.sexp, using mock info* warning. 1. Eval `(ql:update-client)` 2. move `~/quicklisp/tmp/client-info.sexp` to `~/quicklisp` -Watch ASCIInema: - -[![asciicast](https://asciinema.org/a/585361.svg)](https://asciinema.org/a/585361) - ## STARTUP @@ -57,7 +61,7 @@ Watch ASCIInema: (let ((quicklisp-init #p"~/common-lisp/ql-https/ql-setup.lisp")) (when (probe-file quicklisp-init) (load quicklisp-init) - ;; Alternatively: (uiop:symbol-call :ql-setup :setup "/path/to/quicklisp/") + ;; Alternatively: (uiop:symbol-call :ql-setup :setup #p"/path/to/quicklisp/") (uiop:symbol-call :ql-setup :setup))) ;; optional @@ -78,4 +82,3 @@ Copyright (c) 2022 Sebastian Christ (rudolfo.christ@pm.me) # LICENSE Released under the MIT license. - diff --git a/install.lisp b/install.lisp new file mode 100644 index 0000000..56663f1 --- /dev/null +++ b/install.lisp @@ -0,0 +1,27 @@ +;;; SPDX-License-Identifier: MPL-2.0 +;;; +;;; This Source Code Form is subject to the terms of the Mozilla Public +;;; License, v. 2.0. If a copy of the MPL was not distributed with this +;;; file, You can obtain one at http://mozilla.org/MPL/2.0/. + +(require 'asdf) + +(handler-bind ((error (lambda (c) + (let ((restart + (find-if (lambda (restart-name) + (string-equal "USE-HTTPS-SESSION" + (symbol-name restart-name))) + (compute-restarts c) + :key #'restart-name))) + (cond + (restart + (invoke-restart restart)) + (t + (format *error-output* "~%Installation failed~%~A~%" c) + (uiop:quit 1))))))) + (uiop:symbol-call :ql-setup :setup)) + +(assert (equalp ql-http:*fetch-scheme-functions* '(("http" . ql-https:fetcher) ("https" . ql-https:fetcher)))) + +(ql-util:without-prompting + (ql:add-to-init-file)) diff --git a/install.sh b/install.sh index f076999..58c8179 100755 --- a/install.sh +++ b/install.sh @@ -3,6 +3,7 @@ set -euo pipefail LISP=${LISP=sbcl} +CLFLAGS=${CLFLAGS=--non-interactive --no-userinit} # For testers QL_TOPDIR="${QL_TOPDIR-$HOME/quicklisp}" @@ -41,24 +42,15 @@ git clone https://github.com/rudolfochrist/ql-https "$CLDIR"/ql-https if test "$SKIP_USERINIT" = no; then echo "Running setup code..." - $LISP < "$QL_TOPDIR"/setup.lisp <