From 9487cb2567965b0b09a1b7f9dd87eeb9690f8c98 Mon Sep 17 00:00:00 2001 From: Daniel Barlow Date: Fri, 8 Sep 2023 16:47:01 +0100 Subject: [PATCH] DRY near-duplicate code between parse-{addresses,prefixces} --- pkgs/odhcp-script/odhcp6-script.fnl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/odhcp-script/odhcp6-script.fnl b/pkgs/odhcp-script/odhcp6-script.fnl index ccd5279..d105d67 100644 --- a/pkgs/odhcp-script/odhcp6-script.fnl +++ b/pkgs/odhcp-script/odhcp6-script.fnl @@ -40,21 +40,21 @@ (merge {: address : len : preferred : valid} (parse-extra extra)))) -(fn write-addresses [addresses] +(fn write-addresses-thing [prefix addresses] (each [_ a (ipairs (split " " addresses))] (let [address (parse-address a) - keydir (.. "address/" (address.address:gsub ":" "-"))] + keydir (.. prefix (-> address.address + (: :gsub "::$" "") + (: :gsub ":" "-")))] (mkdir (.. state-directory "/" keydir)) (each [k v (pairs address)] (write-value (.. keydir "/" k) v))))) +(fn write-addresses [addresses] + (write-addresses-thing "address/" addresses)) + (fn write-prefixes [prefixes] - (each [_ a (ipairs (split " " prefixes))] - (let [prefix (parse-prefix a) - keydir (.. "prefix/" (prefix.prefix:gsub ":" "-"))] - (mkdir (.. state-directory "/" keydir)) - (each [k v (pairs prefix)] - (write-value (.. keydir "/" k) v))))) + (write-addresses-thing "prefix/" prefixes)) ;; we remove state before updating to ensure that consumers don't get ;; a half-updated snapshot