39 lines
939 B
Nix
39 lines
939 B
Nix
# SPDX-FileCopyrightText: 2025 Lubin Bailly <lubin.bailly@dgnum.eu>
|
|
#
|
|
# SPDX-License-Identifier: EUPL-1.2
|
|
|
|
{
|
|
lib,
|
|
writeShellApplication,
|
|
writeText,
|
|
vlans-info,
|
|
postgresql,
|
|
kea_log-init,
|
|
}:
|
|
let
|
|
inherit (lib) concatMapStringsSep;
|
|
sql-script = writeText "vlan-filling.sql" ''
|
|
DROP TABLE IF EXISTS vlan_prefixes;
|
|
INSERT INTO kea_log (ip_addr, vlan_id, lease_start_sec, lease_end_sec) VALUES
|
|
${concatMapStringsSep ",\n " (
|
|
{
|
|
vlan,
|
|
netIP,
|
|
prefixLen,
|
|
...
|
|
}:
|
|
"(inet '${netIP}/${toString prefixLen}', ${toString vlan}, 0, MIGRATION_TIMESTAMP)"
|
|
) vlans-info}
|
|
;
|
|
'';
|
|
in
|
|
writeShellApplication {
|
|
name = "fill-vlan_prefixes";
|
|
runtimeInputs = [ postgresql ];
|
|
text = ''
|
|
TIMESTAMP="$(date +%s)"
|
|
psql -d ulogd -U ulogd -f ${kea_log-init}
|
|
sed "s/MIGRATION_TIMESTAMP/$TIMESTAMP/" ${sql-script} \
|
|
| psql -d ulogd -U ulogd
|
|
'';
|
|
}
|