Commit 11691d9c46e9aa2fdc7099d89a30b0c5882f8c66

Thomas de Grivel 2017-02-12T11:23:52

Change manifest file syntax to Common Lisp.

diff --git a/repo.lisp b/repo.lisp
index 8a7f105..c1efd97 100644
--- a/repo.lisp
+++ b/repo.lisp
@@ -11,6 +11,8 @@
   (:export #:boot
 	   #:clear-repos
 	   #:find-repo
+           #:git
+           #:github
 	   #:install
 	   #:manifest
 	   #:*manifest*
@@ -282,6 +284,9 @@
 		     :uri ,uri
 		     :url ,uri))))))
 
+(defun git (url &rest initargs)
+  (apply #'make-instance (append (git-repo-uri-handler url) initargs)))
+
 ;;  github repository class
 
 (defclass github-repo (git-repo) ())
@@ -317,6 +322,13 @@
 			:uri ,(github-uri user name)
 			:url ,(github-url user name)))))))
 
+(defun github (user name &rest initargs)
+  (apply #'make-instance 'github-repo
+	 :dir user :name name
+	 :uri (github-uri user name)
+	 :url (github-url user name)
+	 initargs))
+
 ;;  repo uri handler
 
 (defparameter *repo-uri-handlers*
@@ -376,18 +388,6 @@
 
 ;;  repos list
 
-(defun repos-from-stream (stream)
-  (loop for line = (read-line stream nil)
-     while line
-     for spec = (string-trim *spaces* line)
-     unless (string-starts-with "#" spec)
-     collect (repo-or-die spec)))
-
-(defun repos-from-file (pathname)
-  (with-open-file (in pathname :element-type 'character
-		      :external-format :utf-8)
-    (values (repos-from-stream in) (file-write-date in))))
-
 (defmethod install ((repos cons))
   (map nil 'install repos))
 
@@ -423,18 +423,21 @@
   (str (manifest-dir manifest) "/repo.manifest"))
 
 (defun manifest-from-file (pathname)
-  (multiple-value-bind (repos write-date)
-      (repos-from-file pathname)
+  (let ((*repos* nil)
+	(write-date (file-write-date pathname)))
+    (load pathname)
     (make-instance 'manifest
 		   :write-date write-date
 		   :dir (dirname pathname)
-		   :repos repos)))
+		   :repos *repos*)))
 
 (defmethod reload-manifest ((manifest manifest))
-  (multiple-value-bind (repos write-date)
-      (repos-from-file (manifest-file manifest))
+  (let* ((pathname (manifest-file manifest))
+	 (*repos* nil)
+	 (write-date (file-write-date pathname)))
+    (load pathname)
     (setf (manifest-write-date manifest) write-date
-	  (manifest-repos manifest) repos))
+	  (manifest-repos manifest) *repos*))
   manifest)
 
 (defmethod maybe-reload-manifest ((manifest manifest))
diff --git a/repo.manifest b/repo.manifest
index 4bbb615..d450ad1 100644
--- a/repo.manifest
+++ b/repo.manifest
@@ -1,66 +1,68 @@
-github:3b/3bmd
-github:AccelerationNet/cl-inflector
-github:KDr2/sb-fastcgi
-github:KDr2/cl-fastcgi
-github:RailsOnLisp/bootstrap
-github:RailsOnLisp/can
-github:RailsOnLisp/font-awesome
-github:RailsOnLisp/gravatar
-github:RailsOnLisp/re
-github:RailsOnLisp/rol-assets
-github:RailsOnLisp/rol-files
-github:RailsOnLisp/rol-server
-github:RailsOnLisp/rol-template
-github:RailsOnLisp/rol-uri
-github:adamczykm/iterate
-github:cffi/cffi
-github:cl-babel/babel
-github:cl-plus-ssl/cl-plus-ssl cl+ssl
-github:dlowe-net/local-time
-github:edicl/chunga
-github:edicl/cl-fad
-github:edicl/cl-ppcre
-github:edicl/cl-unicode
-github:edicl/drakma
-github:edicl/flexi-streams
-github:edicl/hunchentoot
-github:filonenko-mikhail/cl-portaudio
-github:froydnj/chipz
-github:froydnj/ironclad
-github:froydnj/nibbles
-github:gwkkwg/trivial-backtrace
-github:hankhero/cl-json
-github:keithj/deoxybyte-unix
-github:lowh/cl-debug
-github:lowh/exec-js
-github:lowh/lessp
-github:marijnh/parse-js
-github:mishoo/cl-uglify-js
-github:nallen05/rw-ut
-github:nikodemus/esrap
-github:pcostanza/closer-mop
-github:pmai/md5
-github:rpav/c2ffi
-github:rpav/cl-autowrap
-github:sellout/external-program
-github:sharplispers/parse-number
-github:sharplispers/split-sequence
-github:sionescu/bordeaux-threads
-github:slime/slime
-github:thodg/cfg
-github:thodg/cl-bcrypt
-github:thodg/fb
-github:thodg/parse-css
-github:thodg/repo
-github:thodg/str
-github:tpapp/ffa
-github:trivial-features/trivial-features
-github:trivial-garbage/trivial-garbage
-github:trivial-gray-streams/trivial-gray-streams
-github:usocket/usocket
-http://git.kpe.io/cl-base64.git
-http://git.kpe.io/puri.git
-https://gitlab.common-lisp.net/alexandria/alexandria.git
-https://gitlab.common-lisp.net/cl-utilities/cl-utilities.git
-https://gitlab.common-lisp.net/metabang-bind/metabang-bind.git
-https://gitlab.common-lisp.net/rfc2388/rfc2388.git
+;; -*- Lisp -*-
+(in-package :repo-user)
+(github "3b" "3bmd")
+(github "AccelerationNet" "cl-inflector")
+(github "KDr2" "sb-fastcgi")
+(github "KDr2" "cl-fastcgi")
+(github "RailsOnLisp" "bootstrap")
+(github "RailsOnLisp" "can")
+(github "RailsOnLisp" "font-awesome")
+(github "RailsOnLisp" "gravatar")
+(github "RailsOnLisp" "re")
+(github "RailsOnLisp" "rol-assets")
+(github "RailsOnLisp" "rol-files")
+(github "RailsOnLisp" "rol-server")
+(github "RailsOnLisp" "rol-template")
+(github "RailsOnLisp" "rol-uri")
+(github "adamczykm" "iterate")
+(github "cffi" "cffi")
+(github "cl-babel" "babel")
+(github "cl-plus-ssl" "cl-plus-ssl cl+ssl")
+(github "dlowe-net" "local-time")
+(github "edicl" "chunga")
+(github "edicl" "cl-fad")
+(github "edicl" "cl-ppcre")
+(github "edicl" "cl-unicode")
+(github "edicl" "drakma")
+(github "edicl" "flexi-streams")
+(github "edicl" "hunchentoot")
+(github "filonenko-mikhail" "cl-portaudio")
+(github "froydnj" "chipz")
+(github "froydnj" "ironclad")
+(github "froydnj" "nibbles")
+(github "gwkkwg" "trivial-backtrace")
+(github "hankhero" "cl-json")
+(github "keithj" "deoxybyte-unix")
+(github "lowh" "cl-debug")
+(github "lowh" "exec-js")
+(github "lowh" "lessp")
+(github "marijnh" "parse-js")
+(github "mishoo" "cl-uglify-js")
+(github "nallen05" "rw-ut")
+(github "nikodemus" "esrap")
+(github "pcostanza" "closer-mop")
+(github "pmai" "md5")
+(github "rpav" "c2ffi")
+(github "rpav" "cl-autowrap")
+(github "sellout" "external-program")
+(github "sharplispers" "parse-number")
+(github "sharplispers" "split-sequence")
+(github "sionescu" "bordeaux-threads")
+(github "slime" "slime")
+(github "thodg" "cfg")
+(github "thodg" "cl-bcrypt")
+(github "thodg" "fb")
+(github "thodg" "parse-css")
+(github "thodg" "repo")
+(github "thodg" "str")
+(github "tpapp" "ffa")
+(github "trivial-features" "trivial-features")
+(github "trivial-garbage" "trivial-garbage")
+(github "trivial-gray-streams" "trivial-gray-streams")
+(github "usocket" "usocket")
+(git "http://git.kpe.io/cl-base64.git")
+(git "http://git.kpe.io/puri.git")
+(git "https://gitlab.common-lisp.net/alexandria/alexandria.git")
+(git "https://gitlab.common-lisp.net/cl-utilities/cl-utilities.git")
+(git "https://gitlab.common-lisp.net/metabang-bind/metabang-bind.git")
+(git "https://gitlab.common-lisp.net/rfc2388/rfc2388.git")