blob: 741a1d00938a02368e6b86caab29f0529de43848 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10 -*-
(declaim (optimize (speed 0) (safety 3) (debug 3)))
(in-package :cl)
(defpackage :snow-system (:use :cl :asdf))
(in-package :snow-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 *quicklisp-packages* '(net-telent-date simple-date local-time cl-ppcre uffi hunchentoot cl-log ironclad))
(defparameter *asdf-packages* '(org-ckons-core org-ckons-condition org-ckons-http org-ckons-json org-ckons-file org-ckons-session))
(defparameter *all-packages* (append *quicklisp-packages* *asdf-packages*))
(loop for pkg in *quicklisp-packages* do
(ql:quickload (symbol-name pkg)))
(do-defsystem :name "snow"
:version "1"
:maintainer "Carlos Konstanski <me@ckons.org>"
:author "Carlos Konstanski <me@ckons.org>"
:description "snow"
:long-description "SNOW is a web application written in Common Lisp, based on the Hunchentoot web server. It is a webapp framework for Platform Evolution engineer tools."
:depends-on *all-packages*
:components ((:module core
:components ((:file "core")))
(:module condition
:depends-on (core)
:components ((:file "condition")))
(:module queue
:depends-on (condition)
:components ((:file "fifo")
(:file "queue" :depends-on ("fifo"))))
(:module git
:depends-on (queue)
:components ((:file "git")))
(:module aws
:depends-on (queue)
:components ((:file "aws")))
(:module tfcloud
:depends-on (queue)
:components ((:file "tfcloud")))
(:module octopus
:depends-on (queue aws)
:components ((:file "octopus")))
(:module awx
:depends-on (queue aws)
:components ((:file "awx")))
(:module service
:depends-on (git aws tfcloud octopus)
:components ((:file "base-service")
(:file "rest-service" :depends-on ("base-service"))
(:file "auth-service" :depends-on ("rest-service"))
(:file "generic-form" :depends-on ("rest-service"))
(:file "menu-service" :depends-on ("base-service"))
(:file "home-service" :depends-on ("auth-service"))
(:file "git-update-service" :depends-on ("auth-service"))
(:file "asg-recycle-service" :depends-on ("auth-service"))
(:file "tfcloud-apply-service" :depends-on ("auth-service"))
(:file "octopus-machines-with-roles-service" :depends-on ("auth-service"))
(:file "octopus-environments-with-roles-service" :depends-on ("auth-service"))
(:file "octopus-projects-with-roles-service" :depends-on ("auth-service"))
(:file "octopus-ode-deploy-release-service" :depends-on ("auth-service"))
(:file "octopus-latest-deployments-service" :depends-on ("auth-service"))))
(:module webapps
:depends-on (service)
:components ((:file "webapp-loader")
(:module snow
:depends-on ("webapp-loader")
:components ((:file "site")))))))
|