340 lines
9 KiB
Common Lisp
340 lines
9 KiB
Common Lisp
;;;; package.lisp
|
|
|
|
(defpackage #:ql-util
|
|
(:documentation
|
|
"Utility functions used in various places.")
|
|
(:use #:cl)
|
|
(:export #:write-line-to-file
|
|
#:without-prompting
|
|
#:press-enter-to-continue
|
|
#:replace-file
|
|
#:copy-file
|
|
#:delete-file-if-exists
|
|
#:ensure-file-exists
|
|
#:split-spaces
|
|
#:first-line
|
|
#:file-size
|
|
#:safely-read
|
|
#:safely-read-file
|
|
#:make-versions-url))
|
|
|
|
(defpackage #:ql-setup
|
|
(:documentation
|
|
"Functions and variables initialized early in the Quicklisp client
|
|
configuration.")
|
|
(:use #:cl)
|
|
(:export #:qmerge
|
|
#:qenough
|
|
#:*quicklisp-home*))
|
|
|
|
(defpackage #:ql-config
|
|
(:documentation
|
|
"Getting and setting persistent configuration values.")
|
|
(:use #:cl #:ql-util #:ql-setup)
|
|
(:export #:config-value))
|
|
|
|
(defpackage #:ql-impl
|
|
(:documentation
|
|
"Configuration of implementation-specific packages and interfaces.")
|
|
(:use #:cl)
|
|
(:export #:*implementation*)
|
|
(:export #:definterface
|
|
#:defimplementation
|
|
#:show-interfaces)
|
|
(:export #:lisp
|
|
#:abcl
|
|
#:allegro
|
|
#:ccl
|
|
#:clasp
|
|
#:clisp
|
|
#:cmucl
|
|
#:cormanlisp
|
|
#:ecl
|
|
#:gcl
|
|
#:lispworks
|
|
#:mkcl
|
|
#:scl
|
|
#:sbcl))
|
|
|
|
(defpackage #:ql-impl-util
|
|
(:documentation
|
|
"Utility functions that require implementation-specific
|
|
functionality.")
|
|
(:use #:cl #:ql-impl)
|
|
(:export #:call-with-quiet-compilation
|
|
#:add-to-init-file
|
|
#:rename-directory
|
|
#:delete-directory
|
|
#:probe-directory
|
|
#:directory-entries
|
|
#:delete-directory-tree
|
|
#:map-directory-tree
|
|
#:native-namestring
|
|
#:directory-write-date))
|
|
|
|
(defpackage #:ql-network
|
|
(:documentation
|
|
"Simple, low-level network access.")
|
|
(:use #:cl #:ql-impl)
|
|
(:export #:open-connection
|
|
#:write-octets
|
|
#:read-octets
|
|
#:close-connection
|
|
#:with-connection))
|
|
|
|
(defpackage #:ql-progress
|
|
(:documentation
|
|
"Displaying a progress bar.")
|
|
(:use #:cl)
|
|
(:export #:make-progress-bar
|
|
#:start-display
|
|
#:update-progress
|
|
#:finish-display))
|
|
|
|
(defpackage #:ql-http
|
|
(:documentation
|
|
"A simple HTTP client.")
|
|
(:use #:cl #:ql-network #:ql-progress #:ql-config)
|
|
(:export #:*proxy-url*
|
|
#:fetch
|
|
#:http-fetch
|
|
#:*fetch-scheme-functions*
|
|
#:scheme
|
|
#:hostname
|
|
#:port
|
|
#:path
|
|
#:url
|
|
#:*maximum-redirects*
|
|
#:*default-url-defaults*)
|
|
(:export #:fetch-error
|
|
#:unexpected-http-status
|
|
#:unexpected-http-status-code
|
|
#:unexpected-http-status-url
|
|
#:too-many-redirects
|
|
#:too-many-redirects-url
|
|
#:too-many-redirects-count))
|
|
|
|
(defpackage #:ql-minitar
|
|
(:documentation
|
|
"A simple implementation of unpacking the 'tar' file format.")
|
|
(:use #:cl)
|
|
(:export #:unpack-tarball))
|
|
|
|
(defpackage #:ql-gunzipper
|
|
(:documentation
|
|
"An implementation of gunzip.")
|
|
(:use #:cl)
|
|
(:export #:gunzip))
|
|
|
|
(defpackage #:ql-cdb
|
|
(:documentation
|
|
"Read and write CDB files; code adapted from ZCDB.")
|
|
(:use #:cl)
|
|
(:export #:lookup
|
|
#:map-cdb
|
|
#:convert-index-file))
|
|
|
|
(defpackage #:ql-dist
|
|
(:documentation
|
|
"Generic functions, variables, and classes for interacting with the
|
|
dist system. Documented, exported symbols are intended for public
|
|
use.")
|
|
(:use #:cl
|
|
#:ql-util
|
|
#:ql-http
|
|
#:ql-setup
|
|
#:ql-gunzipper
|
|
#:ql-minitar)
|
|
(:intern #:dist-version
|
|
#:dist-url)
|
|
(:import-from #:ql-impl-util
|
|
#:delete-directory-tree
|
|
#:directory-entries
|
|
#:probe-directory)
|
|
;; Install/enable protocol
|
|
(:export #:installedp
|
|
#:install
|
|
#:uninstall
|
|
#:ensure-installed
|
|
#:enabledp
|
|
#:enable
|
|
#:disable)
|
|
;; Preference protocol
|
|
(:export #:preference
|
|
#:preference-file
|
|
#:preference-parent
|
|
#:forget-preference)
|
|
;; Generic
|
|
(:export #:all-dists
|
|
#:canonical-distinfo-url
|
|
#:enabled-dists
|
|
#:find-dist
|
|
#:find-dist-or-lose
|
|
#:find-system
|
|
#:find-release
|
|
#:dist
|
|
#:system
|
|
#:release
|
|
#:base-directory
|
|
#:relative-to
|
|
#:metadata-name
|
|
#:install-metadata-file
|
|
#:short-description
|
|
#:provided-releases
|
|
#:provided-systems
|
|
#:installed-releases
|
|
#:installed-systems
|
|
#:name)
|
|
;; Dists
|
|
(:export #:dist
|
|
#:dist-merge
|
|
#:find-system-in-dist
|
|
#:find-release-in-dist
|
|
#:system-index-url
|
|
#:release-index-url
|
|
#:available-versions-url
|
|
#:available-versions
|
|
#:version
|
|
#:subscription-url
|
|
#:new-version-available-p
|
|
#:dist-difference
|
|
#:fetch-dist
|
|
#:initialize-release-index
|
|
#:initialize-system-index
|
|
#:with-consistent-dists)
|
|
;; Dist updates
|
|
(:export #:available-update
|
|
#:update-release-differences
|
|
#:show-update-report
|
|
#:update-in-place
|
|
#:install-dist
|
|
#:subscription-inhibition-file
|
|
#:inhibit-subscription
|
|
#:uninhibit-subscription
|
|
#:subscription-inhibited-p
|
|
#:subscription-unavailable
|
|
#:subscribedp
|
|
#:subscribe
|
|
#:unsubscribe)
|
|
;; Releases
|
|
(:export #:release
|
|
#:project-name
|
|
#:system-files
|
|
#:archive-url
|
|
#:archive-size
|
|
#:ensure-archive-file
|
|
#:archive-content-sha1
|
|
#:archive-md5
|
|
#:prefix
|
|
#:local-archive-file
|
|
#:ensure-local-archive-file
|
|
#:check-local-archive-file
|
|
#:invalid-local-archive
|
|
#:invalid-local-archive-file
|
|
#:invalid-local-archive-release
|
|
#:missing-local-archive
|
|
#:badly-sized-local-archive
|
|
#:delete-and-retry)
|
|
;; Systems
|
|
(:export #:dist
|
|
#:release
|
|
#:preference
|
|
#:system-file-name
|
|
#:required-systems)
|
|
;; Misc
|
|
(:export #:standard-dist-enumeration-function
|
|
#:*dist-enumeration-functions*
|
|
#:find-asdf-system-file
|
|
#:system-definition-searcher
|
|
#:system-apropos
|
|
#:system-apropos-list
|
|
#:dependency-tree
|
|
#:clean
|
|
#:unknown-dist))
|
|
|
|
(defpackage #:ql-dist-user
|
|
(:documentation
|
|
"A package that uses QL-DIST; useful for playing around in without
|
|
clobbering any QL-DIST internals.")
|
|
(:use #:cl
|
|
#:ql-dist))
|
|
|
|
(defpackage #:ql-bundle
|
|
(:documentation
|
|
"A package for supporting the QL:BUNDLE-SYSTEMS function.")
|
|
(:use #:cl #:ql-dist #:ql-impl-util)
|
|
(:shadow #:find-system
|
|
#:find-release)
|
|
(:export #:bundle
|
|
#:requested-systems
|
|
#:ensure-system
|
|
#:ensure-release
|
|
#:write-bundle
|
|
#:add-systems-recursively
|
|
#:object-not-found
|
|
#:system-not-found
|
|
#:system-not-found-system
|
|
#:release-not-found
|
|
#:bundle-directory-exists
|
|
#:bundle-directory-exists-directory))
|
|
|
|
(defpackage #:quicklisp-client
|
|
(:documentation
|
|
"The Quicklisp client package, intended for end-user Quicklisp
|
|
commands and configuration parameters.")
|
|
(:nicknames #:quicklisp #:ql)
|
|
(:use #:cl
|
|
#:ql-util
|
|
#:ql-impl-util
|
|
#:ql-dist
|
|
#:ql-http
|
|
#:ql-setup
|
|
#:ql-config
|
|
#:ql-minitar
|
|
#:ql-gunzipper)
|
|
(:shadow #:uninstall)
|
|
(:shadowing-import-from #:ql-dist
|
|
#:dist-version
|
|
#:dist-url)
|
|
(:export #:dist-version
|
|
#:dist-url)
|
|
(:export #:quickload
|
|
#:*quickload-prompt*
|
|
#:*quickload-verbose*
|
|
#:*quickload-explain*
|
|
#:system-not-found
|
|
#:system-not-found-name
|
|
#:uninstall
|
|
#:uninstall-dist
|
|
#:qmerge
|
|
#:*quicklisp-home*
|
|
#:*initial-dist-url*
|
|
#:*proxy-url*
|
|
#:config-value
|
|
#:setup
|
|
#:provided-systems
|
|
#:system-apropos
|
|
#:system-apropos-list
|
|
#:system-list
|
|
#:client-version
|
|
#:client-url
|
|
#:available-client-versions
|
|
#:install-client
|
|
#:update-client
|
|
#:update-dist
|
|
#:update-all-dists
|
|
#:available-dist-versions
|
|
#:add-to-init-file
|
|
#:use-only-quicklisp-systems
|
|
#:write-asdf-manifest-file
|
|
#:where-is-system
|
|
#:help
|
|
#:register-local-projects
|
|
#:local-projects-searcher
|
|
#:*local-project-directories*
|
|
#:list-local-projects
|
|
#:list-local-systems
|
|
#:who-depends-on
|
|
#:bundle-systems))
|
|
|
|
(in-package #:quicklisp-client)
|