Yu-Gi-Oh! Deck Building and Card Inventory Management web interface written in Common Lisp, utilizing HTMX.
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

251 lines
11KB

  1. ;;;; cl-deck-builder2.asd
  2. ;;;;
  3. ;;;; ASDF System Definition File for "The Deck Builder" Common Lisp Project.
  4. ;;;;
  5. ;;;; You can read more about ASDF here:
  6. ;;;; <https://lispcookbook.github.io/cl-cookbook/systems.html>
  7. ;;;;
  8. ;; (require "asdf") ;; for CI
  9. (pushnew :verbose-no-init *features*)
  10. (asdf:defsystem "cl-deck-builder2"
  11. :version "0.4.0"
  12. :author "Bubblegumdrop"
  13. :license "Do Not Redistribute"
  14. :depends-on ("clack"
  15. "lack"
  16. "caveman2"
  17. "envy"
  18. "cl-ppcre"
  19. "uiop"
  20. ;; for @route annotation
  21. ;; "cl-syntax-annot"
  22. ;; HTML Template
  23. "djula"
  24. "djula-gettext"
  25. "gettext"
  26. ;; for DB
  27. "mito"
  28. "mito-auth"
  29. "mito-attachment"
  30. "datafly"
  31. "sxql"
  32. "dbd-sqlite3"
  33. ;; for Models
  34. "assoc-utils" ; AGET is very handy
  35. "cl-csv" ; CSV import
  36. "cl-json" ; JSON import
  37. "local-time"
  38. "split-sequence"
  39. "can"
  40. ;; Documentation!
  41. ;; "documentation-utils"
  42. ;; "documentation-utils-extensions"
  43. "cl-org-mode"
  44. ;; More of Shinmeraa's code
  45. "ratify"
  46. "deploy"
  47. ;; QR Code Generator
  48. "lispqr"
  49. ;; Download stuff
  50. "trivial-download"
  51. ;; Error Handling
  52. "clack-errors"
  53. "lack-middleware-clack-errors"
  54. ;; Better logging
  55. "verbose"
  56. ;; WebSocket chat server backend
  57. "websocket-driver"
  58. "lack-middleware-csrf"
  59. "cl-markup"
  60. "hermetic"
  61. "inferior-shell"
  62. ;; Background job processing
  63. "psychiq"
  64. "cl-fad"
  65. "slynk")
  66. :components ((:module "src"
  67. :components
  68. ((:file "main" :depends-on ("config" "view" "db" "draw" "web"))
  69. (:file "config")
  70. (:file "db" :depends-on ("config" "toolkit"))
  71. (:file "view" :depends-on ("config" "i18n"))
  72. (:file "draw" :depends-on ("models"))
  73. (:file "i18n")
  74. (:module "toolkit"
  75. :components
  76. ((:file "packages")
  77. (:file "paths")
  78. (:file "git")
  79. (:file "time")
  80. (:file "money")
  81. (:file "utils")))
  82. (:module "models"
  83. :components
  84. (;; (:file "toolkit")
  85. (:file "packages")
  86. ;; (:file "model")
  87. (:file "registered-table-mixin")
  88. (:file "attachment")
  89. (:file "category")
  90. (:file "constructed-decks" :depends-on ("ydk" "ygoprodeck-classes" "ygoprodeck-methods" "ygoprodeck-fields"))
  91. (:file "crystal-commerce" :depends-on ("attachment" "ygoprodeck"))
  92. (:file "feedback" :depends-on ("user"))
  93. (:file "label-maker")
  94. (:file "qr-code")
  95. (:file "sqlite-schema")
  96. (:file "user")
  97. (:file "ydk" :depends-on ("ygoprodeck"))
  98. (:file "ygoprodeck")
  99. (:file "ygoprodeck-fields")
  100. (:file "ygoprodeck-classes" :depends-on ("ygoprodeck-fields"))
  101. (:file "ygoprodeck-methods")
  102. (:file "ygoprodeck-cardinfo")
  103. (:file "ygoprodeck-json"))
  104. :depends-on ("db" "toolkit"))
  105. (:module "web"
  106. :components
  107. ((:file "packages")
  108. (:file "setup")
  109. (:file "flash-message")
  110. (:file "params")
  111. (:file "query")
  112. (:file "toolkit")
  113. (:file "index")
  114. (:file "builder" :depends-on ("search"))
  115. (:file "cards")
  116. (:file "constructed-decks")
  117. (:file "category")
  118. (:file "contact")
  119. (:file "decks")
  120. (:file "inventory" :depends-on ("search"))
  121. (:file "qr")
  122. (:file "search")
  123. (:file "sse")
  124. (:file "upload")
  125. (:file "user")
  126. (:file "ydk")
  127. (:file "label-maker" :depends-on ("query"))
  128. (:file "tinymce"))
  129. :depends-on ("db" "i18n" "view" "models" "draw" "toolkit"))))
  130. ;; TODO seeing this all here makes me want to really compress this.
  131. (:module "templates"
  132. :components
  133. ;; Order is important: the ones that extend default.html
  134. ;; must be declared after it, because we compile all of them
  135. ;; at build time.
  136. ((:STATIC-FILE "ydk/index.html") (:STATIC-FILE "user/user-menu-bar.html")
  137. (:STATIC-FILE "user/user-list.html") (:STATIC-FILE "user/register.html")
  138. (:STATIC-FILE "user/login.html") (:STATIC-FILE "user/index.html")
  139. (:STATIC-FILE "user/admin.html") (:STATIC-FILE "upload.html")
  140. (:STATIC-FILE "template.Dockerfile") (:STATIC-FILE "tabs.html")
  141. (:STATIC-FILE "qr.html") (:STATIC-FILE "pages.html")
  142. (:STATIC-FILE "news.html") (:STATIC-FILE "navbar.html")
  143. (:STATIC-FILE "navbar-js.html") (:STATIC-FILE "messages.html")
  144. (:STATIC-FILE "markdown.html") (:STATIC-FILE "layouts/minimal.html")
  145. (:STATIC-FILE "layouts/html-head.html") (:STATIC-FILE "layouts/default.html")
  146. (:STATIC-FILE "latex/default.tpl.tex")
  147. (:STATIC-FILE "latex/ULINE-S-20247.tpl.tex")
  148. (:STATIC-FILE "latex/ULINE-S-20247.tex")
  149. (:STATIC-FILE "latex/Avery-5160.tpl.tex")
  150. (:STATIC-FILE "latex/Avery-5160.tex") (:STATIC-FILE "label-maker.html")
  151. (:STATIC-FILE "kde-team.html") (:STATIC-FILE "inventory/variant-results.html")
  152. (:STATIC-FILE "inventory/search-results.html")
  153. (:STATIC-FILE "inventory/old.html") (:STATIC-FILE "inventory/new.html")
  154. (:STATIC-FILE "inventory/index.html") (:STATIC-FILE "inventory/import.html")
  155. (:STATIC-FILE "inventory/edit.html") (:STATIC-FILE "inventory/base-menu.html")
  156. (:STATIC-FILE "inventory/advanced-search.html")
  157. (:STATIC-FILE "inventory/_view_result.html")
  158. (:STATIC-FILE "inventory/_search_result_th.html")
  159. (:STATIC-FILE "inventory/_new_row.html")
  160. (:STATIC-FILE "inventory/_inventory_variants.html")
  161. (:STATIC-FILE "inventory/_edit_row.html")
  162. (:STATIC-FILE "inventory/_edit_result.html")
  163. (:STATIC-FILE "inventory/_advanced_search_select.html")
  164. (:STATIC-FILE "inventory/_advanced_search_input.html")
  165. (:STATIC-FILE "index.html") (:STATIC-FILE "footer.html")
  166. (:STATIC-FILE "file-js.html") (:STATIC-FILE "docs.md")
  167. (:STATIC-FILE "docs.html") (:STATIC-FILE "decks/search.html")
  168. (:STATIC-FILE "decks/saved-category-list.html")
  169. (:STATIC-FILE "decks/index.html")
  170. (:STATIC-FILE "decks/decks-by-category.html")
  171. (:STATIC-FILE "decks/deck-text-three-column.html")
  172. (:STATIC-FILE "decks/deck-text-textarea.html")
  173. (:STATIC-FILE "decks/deck-text-list.html")
  174. (:STATIC-FILE "decks/deck-text-list-original.html")
  175. (:STATIC-FILE "decks/deck-select.html")
  176. (:STATIC-FILE "decks/deck-menu-bar.html")
  177. (:STATIC-FILE "decks/deck-image-listing.html")
  178. (:STATIC-FILE "decks/deck-html-results.html")
  179. (:STATIC-FILE "decks/deck-html-results-1.html")
  180. (:STATIC-FILE "decks/deck-controls.html")
  181. (:STATIC-FILE "decks/category-select.html")
  182. (:STATIC-FILE "decks/cards-in-decks.html")
  183. (:STATIC-FILE "decks/_field_control_select.html")
  184. (:STATIC-FILE "contact/list.html") (:STATIC-FILE "contact/index.html")
  185. (:STATIC-FILE "contact/admin.html")
  186. (:STATIC-FILE "construct/select-sets.html")
  187. (:STATIC-FILE "construct/pull-menu-bar.html")
  188. (:STATIC-FILE "construct/index.html") (:STATIC-FILE "chat.html")
  189. (:STATIC-FILE "category/index.html") (:STATIC-FILE "category/explain.html")
  190. (:STATIC-FILE "category/child-list.html")
  191. (:STATIC-FILE "category/child-form.html")
  192. (:STATIC-FILE "category/category-menu-bar.html")
  193. (:STATIC-FILE "cards/view.html") (:STATIC-FILE "cards/search-results.html")
  194. (:STATIC-FILE "cards/info.html") (:STATIC-FILE "cards/index.html")
  195. (:STATIC-FILE "cards/cc-item-view.html")
  196. (:STATIC-FILE "cards/cc-item-row.html")
  197. (:STATIC-FILE "cards/_search_result_th.html")
  198. (:STATIC-FILE "cards/_advanced_search_top.html")
  199. (:STATIC-FILE "cards/_advanced_search_select_kind.html")
  200. (:STATIC-FILE "cards/_advanced_search_select.html")
  201. (:STATIC-FILE "cards/_advanced_search_numeric.html")
  202. (:STATIC-FILE "cards/_advanced_search_input_numeric.html")
  203. (:STATIC-FILE "cards/_advanced_search_attrs.html")
  204. (:STATIC-FILE "builder/search-results.html")
  205. (:STATIC-FILE "builder/saved-deck-list.html")
  206. (:STATIC-FILE "builder/saved-category-list.html")
  207. (:STATIC-FILE "builder/index.html")
  208. (:STATIC-FILE "builder/deck-controls.html")
  209. (:STATIC-FILE "builder/current-deck-list.html")
  210. (:STATIC-FILE "builder/base-menu.html")
  211. (:STATIC-FILE "builder/_search_results_th.html")
  212. (:STATIC-FILE "builder/_jquery_droppable.html")
  213. (:STATIC-FILE "builder/_current_deck_list-1.html")
  214. (:STATIC-FILE "builder/_advanced_search_select_kind.html")
  215. (:STATIC-FILE "builder/_advanced_search_select.html")
  216. (:STATIC-FILE "builder/_advanced_search_numeric.html")
  217. (:STATIC-FILE "builder/_advanced_search_input_numeric.html")
  218. (:STATIC-FILE "builder/_advanced_search_attrs.html")
  219. (:STATIC-FILE "_errors/404.html"))))
  220. :description "Deck Builder Project"
  221. :defsystem-depends-on (:deploy) ;; (ql:quickload "deploy") before
  222. :build-operation "deploy-op" ;; instead of "program-op"
  223. :build-pathname "cl-deck-builder2"
  224. :entry-point "cl-deck-builder2:my/start"
  225. :in-order-to ((test-op (test-op "cl-deck-builder2-test"))))
  226. ;; Use compression: from 108M, 0.04s startup time to 24M, 0.37s.
  227. #+sb-core-compression
  228. (defmethod asdf:perform ((o asdf:image-op) (c asdf:system))
  229. (uiop:dump-image (asdf:output-file o c) :executable t :compression t))