This snippet was written by @svetlyak40wt on https://gist.github.com/svetlyak40wt/a8ed639bf8fe07caed1531611bcf932d, referenced in print-licences.
(defun print-dependency-graph (system-name &key (level 0) (max-level most-positive-fixnum))
(when (= level max-level)
(return-from print-dependency-graph))
(loop repeat level
do (format t " "))
(format t "~A~%" system-name)
(typecase system-name
((or string symbol)
(let ((system (asdf/system:find-system system-name)))
(loop for dep in (asdf/system:system-depends-on system)
do (print-dependency-graph dep :level (1+ level) :max-level max-level))))))
Usage:
(print-dependency-graph "mito" :max-level 3)
;; =>
mito
mito-core
(VERSION dbi 0.9.5)
sxql
cl-ppcre
closer-mop
dissect
trivia
cl-reexport
local-time
uuid
alexandria
mito-migration
mito-core
sxql
dbi
closer-mop
cl-reexport
esrap
alexandria
uiop
chipz
NIL
Related, to get a graph of dependencies:
This snippet was written by @svetlyak40wt on https://gist.github.com/svetlyak40wt/a8ed639bf8fe07caed1531611bcf932d, referenced in print-licences.
Usage:
Related, to get a graph of dependencies:
dotto generate an image of the dependencies graph.