2023-10-31 22:40:41 +00:00
|
|
|
# Attenuate `$config` by rewriting plain `require-service` assertions to `require-core-service`
|
|
|
|
# assertions. Allow all other assertions through.
|
|
|
|
#
|
2023-02-07 11:22:37 +00:00
|
|
|
let ?sys = <* $config [<or [
|
2022-02-06 22:06:55 +00:00
|
|
|
<rewrite <require-service ?s> <require-core-service $s>>
|
2023-02-07 11:22:37 +00:00
|
|
|
<accept _>
|
|
|
|
]>]>
|
2022-02-06 22:06:55 +00:00
|
|
|
|
2023-10-31 22:40:41 +00:00
|
|
|
# Give meaning to `require-core-service`: it is an ordinary `require-service`, plus a
|
|
|
|
# declaration that the `core` milestone depends on the service.
|
|
|
|
#
|
2022-02-06 22:06:55 +00:00
|
|
|
? <require-core-service ?s> [
|
|
|
|
<depends-on <milestone core> <service-state $s up>>
|
|
|
|
<require-service $s>
|
|
|
|
]
|
|
|
|
|
2023-10-31 22:40:41 +00:00
|
|
|
# Load config in the `core` directory, using the wrapped `config` so that all plain services
|
|
|
|
# required are changed to be *core* services.
|
|
|
|
#
|
2022-02-06 22:06:55 +00:00
|
|
|
<require-service <config-watcher "/etc/syndicate/core" {
|
|
|
|
config: $sys
|
|
|
|
gatekeeper: $gatekeeper
|
|
|
|
log: $log
|
|
|
|
}>>
|
|
|
|
|
2023-10-31 22:40:41 +00:00
|
|
|
# In addition, require the `core` milestone explicitly.
|
|
|
|
#
|
2022-02-06 22:06:55 +00:00
|
|
|
<require-service <milestone core>>
|