|
@@ -6,6 +6,30 @@
|
|
|
|
|
|
;;; "collect" goes here. Hacks and glory await!
|
|
|
|
|
|
+(defmacro define-application (name file &body body-forms)
|
|
|
+ (declare (string name))
|
|
|
+ `(progn
|
|
|
+ (restas:define-module ,name
|
|
|
+ (:use :cl
|
|
|
+ :cl-who
|
|
|
+ :parenscript
|
|
|
+ :sqlite
|
|
|
+ :restas
|
|
|
+ :iter)
|
|
|
+ (:import-from #:hunchentoot
|
|
|
+ #:post-parameter)
|
|
|
+ (:import-from #:lass
|
|
|
+ #:compile-and-write))
|
|
|
+ (in-package ,name)
|
|
|
+ (defvar *tables*)
|
|
|
+ (defvar *db*)
|
|
|
+ (defun start (port)
|
|
|
+ (setq *db* (connect ,file))
|
|
|
+ (iter (for (name . query))
|
|
|
+ (do (execute-non-query *db* query)))
|
|
|
+ (restas:start ,name :port 8080))
|
|
|
+ ,@body-forms))
|
|
|
+
|
|
|
(defun to-sql-type (type)
|
|
|
(cadr (assoc type '((:integer "INTEGER")
|
|
|
(:text "TEXT")
|