summaryrefslogtreecommitdiff
path: root/lisp/snow.asd
diff options
context:
space:
mode:
authorBret Koppel <bret@olo.com>2025-10-07 09:00:37 -0400
committerGitHub <noreply@github.com>2025-10-07 09:00:37 -0400
commit910d7fd656b9e957181732b36761449de5a970d1 (patch)
tree0f8ee46af3e93aa489785d64d54c5e155ef0057b /lisp/snow.asd
parent9adba239b937df2830a5110adaa1dae17b7dd7d7 (diff)
parent0ad86ba37be273ee1fe4d9bdd5f7bb15c5701abf (diff)
Merge pull request #1 from ololabs/initial-commit
initial commit
Diffstat (limited to 'lisp/snow.asd')
-rw-r--r--lisp/snow.asd79
1 files changed, 79 insertions, 0 deletions
diff --git a/lisp/snow.asd b/lisp/snow.asd
new file mode 100644
index 0000000..741a1d0
--- /dev/null
+++ b/lisp/snow.asd
@@ -0,0 +1,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")))))))