56 lines
1.1 KiB
Fennel
56 lines
1.1 KiB
Fennel
|
|
(os.chdir (os.getenv "SERVICE_STATE"))
|
|
|
|
(fn write-value [name value]
|
|
(with-open [fout (io.open name :w)]
|
|
(when value (fout:write value))))
|
|
|
|
(write-value "state" (. arg 2))
|
|
(write-value "ifname" (. arg 1))
|
|
|
|
(fn write-value-from-env [name]
|
|
(write-value name (os.getenv (string.upper name))))
|
|
|
|
(let [wanted
|
|
[
|
|
:addresses
|
|
:aftr
|
|
:cer
|
|
:domains
|
|
:lw406
|
|
:mape
|
|
:mapt
|
|
:ntp_fqdn
|
|
:ntp_ip
|
|
:option_1
|
|
:option_2
|
|
:option_3
|
|
:option_4
|
|
:option_5
|
|
:passthru
|
|
:prefixes
|
|
:ra_addresses
|
|
:ra_dns
|
|
:ra_domains
|
|
:ra_hoplimit
|
|
:ra_mtu
|
|
:ra_reachable
|
|
:ra_retransmit
|
|
:ra_routes
|
|
:rdnss
|
|
:server
|
|
:sip_domain
|
|
:sip_ip
|
|
:sntp_ip
|
|
:sntp_fqdn
|
|
]]
|
|
(each [_ n (ipairs wanted)]
|
|
(write-value-from-env n)))
|
|
|
|
(let [ready (match state
|
|
"started" false
|
|
"unbound" false
|
|
"stopped" false
|
|
_ true)]
|
|
(and ready
|
|
(with-open [fd (io.open "/proc/self/fd/10" :w)] (fd:write "\n"))))
|