forked from dimitri/pgloader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpgloader.asd
126 lines (112 loc) · 4.57 KB
/
pgloader.asd
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
;;;; pgloader.asd
(asdf:defsystem #:pgloader
:serial t
:description "Load data into PostgreSQL"
:author "Dimitri Fontaine <[email protected]>"
:license "The PostgreSQL Licence"
:depends-on (#:uiop ; host system integration
#:cl-log ; logging
#:postmodern ; PostgreSQL protocol implementation
#:cl-postgres ; low level bits for COPY streaming
#:simple-date ; FIXME: recheck dependency
#:qmynd ; MySQL protocol implemenation
#:split-sequence ; some parsing is made easy
#:cl-csv ; full CSV reader
#:cl-fad ; file and directories
#:lparallel ; threads, workers, queues
#:esrap ; parser generator
#:alexandria ; utils
#:drakma ; http client, download archives
#:zip ; support for zip archive files
#:flexi-streams ; streams
#:com.informatimago.clext ; portable character-sets listings
#:usocket ; UDP / syslog
#:local-time ; UDP date parsing
#:command-line-arguments ; for the main function
#:abnf ; ABNF parser generator (for syslog)
#:db3 ; DBF version 3 file reader
#:py-configparser ; Read old-style INI config files
#:sqlite ; Query a SQLite file
#:trivial-backtrace ; For --debug cli usage
#:cl-markdown ; To produce the website
)
:components
((:module "src"
:components
((:file "params")
(:file "package" :depends-on ("params"))
(:file "logs" :depends-on ("package" "params"))
(:file "monitor" :depends-on ("params"
"package"
"logs"))
(:file "utils" :depends-on ("params"
"package"
"monitor"))
;; those are one-package-per-file
(:file "transforms")
(:file "queue" :depends-on ("params" "package"))
(:file "parser" :depends-on ("package"
"params"
"transforms"
"utils"
"monitor"
"pgsql"))
(:file "parse-ini" :depends-on ("package"
"params"
"utils"))
(:file "archive" :depends-on ("params"
"package"
"utils"
"sources"
"pgsql"))
;; package pgloader.pgsql
(:module pgsql
:depends-on ("package"
"params"
"queue"
"utils"
"logs"
"monitor")
:components
((:file "copy-format")
(:file "queries")
(:file "schema")
(:file "pgsql"
:depends-on ("copy-format"
"queries"
"schema"))))
;; Source format specific implementations
(:module sources
:depends-on ("params"
"package"
"pgsql"
"utils"
"logs"
"monitor"
"queue"
"transforms")
:components
((:file "sources")
(:file "csv" :depends-on ("sources"))
(:file "fixed" :depends-on ("sources"))
(:file "db3" :depends-on ("sources"))
(:file "sqlite" :depends-on ("sources"))
(:file "syslog" :depends-on ("sources"))
(:file "mysql-cast-rules")
(:file "mysql-schema")
(:file "mysql" :depends-on ("mysql-cast-rules"
"mysql-schema"))))
;; the main entry file, used when building a stand-alone
;; executable image
(:file "main" :depends-on ("params"
"package"
"monitor"
"utils"
"parser"
"sources"))))
;; to produce the website
(:module "web"
:components
((:module src
:components
((:file "docs")))))))