summaryrefslogtreecommitdiff
path: root/guix/scripts
diff options
context:
space:
mode:
authorMathieu Othacehe <othacehe@gnu.org>2021-05-21 15:21:15 +0200
committerMathieu Othacehe <othacehe@gnu.org>2021-05-22 14:04:19 +0200
commit7003b2db526fc367664f3a7c4bdbe38a7c717da6 (patch)
tree2b1de180d82bc5549a79088b6e56978c9ee7dd26 /guix/scripts
parentfbabf0bec61c88755d6dd238717a356ca3a20b80 (diff)
downloadguix-patches-7003b2db526fc367664f3a7c4bdbe38a7c717da6.tar
guix-patches-7003b2db526fc367664f3a7c4bdbe38a7c717da6.tar.gz
scripts: discover: Report Avahi errors.
Fixes: <https://issues.guix.gnu.org/48561>. * guix/scripts/discover (guix-discover): Report Avahi errors.
Diffstat (limited to 'guix/scripts')
-rw-r--r--guix/scripts/discover.scm18
1 files changed, 15 insertions, 3 deletions
diff --git a/guix/scripts/discover.scm b/guix/scripts/discover.scm
index be1eaa6e95..dadade81bb 100644
--- a/guix/scripts/discover.scm
+++ b/guix/scripts/discover.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2020 Mathieu Othacehe <othacehe@gnu.org>
+;;; Copyright © 2020, 2021 Mathieu Othacehe <othacehe@gnu.org>
;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com>
;;;
;;; This file is part of GNU Guix.
@@ -26,6 +26,7 @@
#:use-module (guix build syscalls)
#:use-module (guix build utils)
#:use-module (guix scripts publish)
+ #:use-module (avahi)
#:use-module (ice-9 rdelim)
#:use-module (srfi srfi-37)
#:export (read-substitute-urls
@@ -138,5 +139,16 @@ to synchronize with the writer."
(parameterize ((%publish-file publish-file))
(mkdir-p (dirname publish-file))
(false-if-exception (delete-file publish-file))
- (avahi-browse-service-thread service-proc
- #:types %services)))))
+ (catch 'avahi-error
+ (lambda ()
+ (avahi-browse-service-thread service-proc
+ #:types %services))
+ (lambda (key err function . _)
+ (cond
+ ((eq? err error/no-daemon)
+ (warning (G_ "Avahi daemon is not running, \
+cannot auto-discover substitutes servers.~%")))
+ (else
+ (report-error (G_ "an Avahi error was raised by `~a': ~a~%")
+ function (error->string err))))
+ (exit 1)))))))