summaryrefslogtreecommitdiff
path: root/lisp/dns-admin.asd
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/dns-admin.asd')
-rw-r--r--lisp/dns-admin.asd65
1 files changed, 65 insertions, 0 deletions
diff --git a/lisp/dns-admin.asd b/lisp/dns-admin.asd
new file mode 100644
index 0000000..15f783b
--- /dev/null
+++ b/lisp/dns-admin.asd
@@ -0,0 +1,65 @@
+;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
+(declaim (optimize (speed 0) (safety 3) (debug 3)))
+
+(in-package #:cl)
+
+(defpackage #:dns-admin-system (:use #:cl #:asdf))
+(in-package #:dns-admin-system)
+
+(defmacro do-defsystem (&key name version maintainer author description long-description depends-on components)
+ `(defsystem ,name
+ :name ,name
+ :version ,version
+ :maintainer ,maintainer
+ :author ,author
+ :description ,description
+ :long-description ,long-description
+ :depends-on ,(eval depends-on)
+ :components ,components))
+
+(defparameter *asdf-packages* '(net-telent-date cl-ppcre uffi hunchentoot cl-log ironclad cl-json drakma cl-smtp))
+
+(loop for pkg in *asdf-packages* do
+ (ql:quickload (symbol-name pkg)))
+
+(do-defsystem :name "dns-admin"
+ :version "1"
+ :maintainer "Carlos Konstanski <carlos.konstanski@verizonwireless.com>"
+ :author "Carlos Konstanski <carlos.konstanski@verizonwireless.com>"
+ :description "dns-admin"
+ :long-description "dns-admin is a web application written in Common Lisp based on the Hunchentoot web server. The client-side code is written in ClojureScript. Its purpose is to be a DNS administration tool."
+ :depends-on *asdf-packages*
+ :components ((:module core
+ :components ((:file "coreutils")
+ (:file "httputils" :depends-on ("coreutils"))
+ (:file "html" :depends-on ("coreutils"))))
+ (:module condition
+ :depends-on (core)
+ :components ((:file "condition")))
+ (:module file
+ :depends-on (core condition)
+ :components ((:file "file-utils")))
+ (:module json
+ :depends-on (condition)
+ :components ((:file "json-utils")))
+ (:module dns
+ :depends-on (json)
+ :components ((:file "dns")))
+ (:module entity
+ :depends-on (dns)
+ :components ((:file "generics")
+ (:file "entity" :depends-on ("generics"))
+ (:file "dns-record" :depends-on ("entity"))))
+ (:module service
+ :depends-on (entity)
+ :components ((:file "base-service")
+ (:file "rest-service" :depends-on ("base-service"))
+ (:file "generic-form" :depends-on ("rest-service"))
+ (:file "dns-service" :depends-on ("rest-service"))))
+ (:module webapps
+ :depends-on (service)
+ :components ((:file "generics")
+ (:file "webapp-loader" :depends-on ("generics"))
+ (:module dns-admin
+ :depends-on ("webapp-loader")
+ :components ((:file "site")))))))