From 1cd73df0c8694f491d40f93a796ea58f150e88dc Mon Sep 17 00:00:00 2001
From: tv <tv@krebsco.de>
Date: Thu, 21 Jan 2021 17:29:01 +0100
Subject: [PATCH] krebs.backup fping: select fastest by elapsed time

---
 krebs/3modules/backup.nix | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/krebs/3modules/backup.nix b/krebs/3modules/backup.nix
index c0b218c15..910324f3c 100644
--- a/krebs/3modules/backup.nix
+++ b/krebs/3modules/backup.nix
@@ -226,10 +226,14 @@ let
 
   # XXX Is one ping enough to determine fastest address?
   fastest-address = host: ''
-    { ${pkgs.fping}/bin/fping </dev/null -a \
+    { ${pkgs.fping}/bin/fping </dev/null -a -e \
         ${concatMapStringsSep " " shell.escape
           (mapAttrsToList (_: net: head net.aliases) host.nets)} \
-      | ${pkgs.coreutils}/bin/head -1; }
+      | ${pkgs.gnused}/bin/sed -r 's/^(\S+) \(([0-9.]+) ms\)$/\2\t\1/' \
+      | ${pkgs.coreutils}/bin/sort -n \
+      | ${pkgs.coreutils}/bin/cut -f2 \
+      | ${pkgs.coreutils}/bin/head -n 1
+    }
   '';
 
 in out