forked from DGNum/infrastructure
39 lines
852 B
Nix
39 lines
852 B
Nix
# SPDX-FileCopyrightText: 2025 Lubin Bailly <lubin.bailly@dgnum.eu>
|
|
#
|
|
# SPDX-License-Identifier: EUPL-1.2
|
|
|
|
{
|
|
lib,
|
|
writeShellApplication,
|
|
writeText,
|
|
vlans-info,
|
|
postgresql,
|
|
}:
|
|
let
|
|
inherit (lib) concatMapStringsSep;
|
|
sql-script = writeText "vlan-filling.sql" ''
|
|
DROP TABLE IF EXISTS vlan_prefixes;
|
|
CREATE TABLE vlan_prefixes (
|
|
vlan_id smallint PRIMARY KEY UNIQUE NOT NULL,
|
|
prefix inet NOT NULL
|
|
);
|
|
INSERT INTO vlan_prefixes VALUES
|
|
${concatMapStringsSep ",\n " (
|
|
{
|
|
vlan,
|
|
netIP,
|
|
prefixLen,
|
|
...
|
|
}:
|
|
"(${toString vlan}, inet '${netIP}/${toString prefixLen}')"
|
|
) vlans-info}
|
|
;
|
|
'';
|
|
in
|
|
writeShellApplication {
|
|
name = "fill-vlan_prefixes";
|
|
runtimeInputs = [ postgresql ];
|
|
text = ''
|
|
psql -d ulogd -U ulogd -f ${sql-script}
|
|
'';
|
|
}
|