Update of /p/lispy/cvsroot/lispy In directory clnet:/tmp/cvs-serv27075
Modified Files: lispy.lisp logging.lisp utils.lisp Log Message: Change logging to use log5.
--- /p/lispy/cvsroot/lispy/lispy.lisp 2008/02/04 14:42:42 1.12 +++ /p/lispy/cvsroot/lispy/lispy.lisp 2008/02/04 15:15:08 1.13 @@ -1,13 +1,6 @@
(in-package #:lispy)
-(defun log-message (name control-string &rest format-arguments) - (when *lispy-log-stream* - (format *lispy-log-stream* "~&~A ~A: ~A~%" - (get-universal-time) - (string-upcase name) - (apply #'format nil (cons control-string format-arguments))))) - (defclass module () ((name :initarg :name :reader name @@ -47,7 +40,7 @@ (labels ((dependencies-of (name) (push (module-by-name name) dependencies) (let ((m (module-by-name name))) - (if m + (if m (dolist (d (dependencies (latest-version m))) (dependencies-of d)) (error "No such module ~A found in map." name))))) @@ -100,7 +93,7 @@
(defun read-map (map-url) "Read the map at MAP-URL and merge the modules into *LISPY-MAP*." - (log-message "read-map" "Reading ~A" (uri-to-string map-url)) + (log5:log-for map "Reading ~A" (uri-to-string map-url)) (multiple-value-bind (stream status-code headers uri http-stream must-close) (drakma:http-request map-url :want-stream t) (declare (ignore status-code headers uri http-stream must-close)) @@ -117,8 +110,7 @@ Returns the mutated *LISPY-MAPS*." (dolist (map-url map-urls) (read-map map-url)) - (log-message "read-maps" "Map contains ~A entr~:@p" - (hash-table-count *lispy-map*)) + (log5:log-for map "Maps contain contains ~A entr~:@p" (hash-table-count *lispy-map*)) *lispy-map*)
(defun parse-module (module map-url) @@ -173,19 +165,19 @@
(defun read-installation () "Read the installation file into *LISPY-INSTALLATION*" - (log-message "read-installation" "Reading ~A" (namestring *lispy-installation-pathname*)) + (log5:log-for installation "Reading ~A" (namestring *lispy-installation-pathname*)) (with-open-file (stream *lispy-installation-pathname* :direction :input :if-does-not-exist :create) (dolist (install (mapcar #'parse-install (read-stream stream nil nil))) (setf (gethash (name install) *lispy-installation*) install))) - (log-message "read-installation" "Map contains ~A entr~:@p" (hash-table-count *lispy-installation*)) + (log5:log-for installation "Installation contains ~A entr~:@p" (hash-table-count *lispy-installation*)) *lispy-installation*)
(defun write-installation () "Write *LISPY-INSTALLATION* to the installtaion file." - (log-message "write-installation" "Writing ~A" (namestring *lispy-installation-pathname*)) + (log5:log-for installation "Writing ~A" (namestring *lispy-installation-pathname*)) (with-open-file (stream *lispy-installation-pathname* :direction :output :if-does-not-exist :create @@ -216,13 +208,13 @@ (defun read-asdf-config () "Load the Lispy ASDF configuration, which in turn adds paths to ASDF:*CENTRAL-REGISTRY*." - (log-message "read-asdf-config" "Loading ~A" (namestring *lispy-asdf-config-pathname*)) + (log5:log-for asdf "Loading ~A" (namestring *lispy-asdf-config-pathname*)) (load *lispy-asdf-config-pathname*))
(defun write-asdf-config () "Write a Lispy ASDF configuration file which can be loaded indepedent of Lispy." - (log-message "write-asdf-config" "Writing ~A" (namestring *lispy-asdf-config-pathname*)) + (log5:log-for asdf "Writing ~A" (namestring *lispy-asdf-config-pathname*)) (with-open-file (stream *lispy-asdf-config-pathname* :direction :output :if-does-not-exist :create @@ -247,18 +239,18 @@ (:documentation "Download Lisp package source."))
(defmethod fetch ((module module)) - (log-message "fetch" "Fetching ~A" (name module)) + (log5:log-for fetch "Fetching ~A" (name module)) (fetch (latest-version module)))
(defmethod fetch ((version version)) - (log-message "fetch" "Fetching ~A" (uri-to-string (make-fetch-url (source version) (map-url version)))) + (log5:log-for fetch "Fetching ~A" (uri-to-string (make-fetch-url (source version) (map-url version)))) (ensure-directories-exist *lispy-distfiles-pathname*) (let ((pathname (merge-pathnames (source version) *lispy-distfiles-pathname*))) (if (and (probe-file pathname ) (compare-to-md5sum pathname (md5sum version))) - (log-message "fetch" "~A already exists and matches the version ~A MD5 checksum." - pathname - (version version)) + (log5:log-for fetch "~A already exists and matches the version ~A MD5 checksum." + pathname + (version version)) (progn (multiple-value-bind (stream status-code headers uri http-stream must-close) (drakma:http-request (make-fetch-url (source version) (map-url version)) @@ -288,7 +280,7 @@ (:documentation "Install Lisp package source."))
(defmethod install ((module module)) - (log-message "install" "Installing ~A" (name module)) + (log5:log-for install "Installing ~A" (name module)) (dolist (module (remove-duplicates (dependency-list module))) (install (latest-version module))))
@@ -296,9 +288,9 @@ (if (and (install-by-name (name version)) (= (our-version (install-by-name (name version))) (our-version version))) - (log-message "install" "Already installed ~A ~A." (name version) (version version)) + (log5:log-for install "Already installed ~A ~A." (name version) (version version)) (progn - (log-message "install" "Installing ~A ~A" (name version) (version version)) + (log5:log-for install "Installing ~A ~A" (name version) (version version)) (fetch version) (extract version) (setf (gethash (name version) *lispy-installation*) @@ -316,11 +308,11 @@ (:documentation "Extract Lisp package source."))
(defmethod extract ((module module)) - (log-message "extract" "Extracting ~A" (name module)) + (log5:log-for extract "Extracting ~A" (name module)) (extract (latest-version module)))
(defmethod extract ((version version)) - (log-message "extract" "Extracting ~A ~A" (name version) (version version)) + (log5:log-for extract "Extracting ~A ~A" (name version) (version version)) (let ((pathname (merge-pathnames (source version) *lispy-distfiles-pathname*))) (extract-archive pathname *lispy-pathname*)))
@@ -351,7 +343,7 @@ configuration file and updates ASDF:*CENTRAL-REGISTRY*." (setf *lispy-installation* (make-hash-table :test 'eq) *lispy-map* (make-hash-table :test 'eq)) - (log-message "initialize" "Initializing Lispy system on ~A ~A" (lisp-implementation-type) (lisp-implementation-version)) + (log5:log-for all-categories "Initializing Lispy system on ~A ~A" (lisp-implementation-type) (lisp-implementation-version)) (read-maps) (read-installation) (write-asdf-config) @@ -383,16 +375,16 @@ (let ((module (module-by-name (name install)))) (if (upgradable-p install module) (let ((latest-version (latest-version module))) - (log-message "upgrade" "Upgrading ~A from ~A to ~A" - (name install) - (version install) - (version latest-version)) + (log5:log-for upgrade "Upgrading ~A from ~A to ~A" + (name install) + (version install) + (version latest-version)) ;; FIXME: this needs to be transactional (uninstall install) (install latest-version)) - (log-message "upgrade" "~A ~A is already the latest version." - (name install) - (version install))))) + (log5:log-for upgrade "~A ~A is already the latest version." + (name install) + (version install)))))
(defun upgrade-all () "Upgrade all upgradable Lisp source packages." --- /p/lispy/cvsroot/lispy/logging.lisp 2008/02/04 14:42:42 1.1 +++ /p/lispy/cvsroot/lispy/logging.lisp 2008/02/04 15:15:08 1.2 @@ -4,5 +4,22 @@ (log5:defcategory install) (log5:defcategory uninstall) (log5:defcategory upgrade) +(log5:defcategory extract) +(log5:defcategory map) +(log5:defcategory installation) +(log5:defcategory asdf) +(log5:defcategory fetch)
+(log5:defcategory all-categories (install uninstall upgrade extract map installation asdf fetch))
+(log5:defoutput newline (format nil "~%")) + +(log5:defoutput time-hms + (multiple-value-bind (second minute hour day month year) + (decode-universal-time (get-universal-time)) + (format nil "~D:~2,'0D:~2,'0D" hour minute second))) + +(log5:start-sender 'debug + (log5:stream-sender :location *error-output*) + :category-spec '(all-categories log5:error+) + :output-spec '(time-hms log5:message newline)) --- /p/lispy/cvsroot/lispy/utils.lisp 2008/02/04 14:42:42 1.5 +++ /p/lispy/cvsroot/lispy/utils.lisp 2008/02/04 15:15:08 1.6 @@ -23,7 +23,7 @@ (let ((archive (archive:open-archive 'archive:tar-archive stream))) (unwind-protect (archive:do-archive-entries (entry archive) - (log-message 'extract-archive (archive:name entry)) + (log5:log-for extract "Extracting ~A" (archive:name entry)) (when (archive:entry-regular-file-p entry) (extract-entry entry target-directory-pathname))) (close stream)))))