# SPDX-FileCopyrightText: 2025 Lubin Bailly # # 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} ''; }