aboutsummaryrefslogtreecommitdiff
path: root/gnu/services/herd.scm
Commit message (Collapse)AuthorAge
* services: herd: Add a new 'current-service' procedure.Maxim Cournoyer2023-07-21
| | | | | | * gnu/services/herd.scm (current-service): New procedure, mostly reusing the existing current-services. (current-services): Implement in terms of the above procedure.
* services: herd: "Resolve" transient services only when needed.Ludovic Courtès2023-05-30
| | | | | | | | | | This allows us to get rid of the "eval root" actions, which in turn would lead to confusing "Evaluating user expression" messages. Fixes <https://issues.guix.gnu.org/55857>. * gnu/services/herd.scm (resolve-transients): In 'values', avoid 'eval-there' call when UNRESOLVED is empty.
* services: herd: 'load-services/safe' is synonymous with 'load-services'.Ludovic Courtès2023-04-21
| | | | | | | This is a followup to 547965aa27b6a09cadf42130b7ec7db3f1aee61f. * gnu/services/herd.scm (load-services/safe): Make an alias for 'load-services'.
* services: herd: Remove workaround for Shepherd < 0.5.0.Ludovic Courtès2023-03-26
| | | | | * gnu/services/herd.scm (load-services/safe): Remove workaround for Shepherd < 0.5.0, released in 2018.
* services: herd: Add 'wait-for-service'.Ludovic Courtès2022-05-28
| | | | * gnu/services/herd.scm (wait-for-service): New procedure.
* services: herd: Report whether a service is transient.Ludovic Courtès2022-04-10
| | | | | | | * gnu/services/herd.scm (<live-service>)[transient?]: New field. (current-services): Check the value of 'transient?'. Call 'resolve-transients'. (resolve-transients): New procedure.
* services: herd: Add restart-service.Mathieu Othacehe2020-03-03
| | | | * gnu/services/herd.scm (restart-service): New exported procedure.
* herd: Define 'shepherd-message-port'.Ludovic Courtès2019-10-18
| | | | | * gnu/services/herd.scm (shepherd-message-port): New variable. (display-message): Use it instead of 'current-error-port'.
* guix system: Add 'reconfigure' module.Jakob L. Kreuze2019-07-26
| | | | | | | | | | | | | | * guix/scripts/system/reconfigure.scm: New file. * Makefile.am (MODULES): Add it. * guix/scripts/system.scm (bootloader-installer-script): Export variable. * gnu/machine/ssh.scm (switch-to-system, upgrade-shepherd-services) (install-bootloader): Delete variable. * gnu/machine/ssh.scm (deploy-managed-host): Rewrite procedure. * gnu/services/herd.scm (live-service): Export variable. * gnu/services/herd.scm (live-service-canonical-name): New variable. * tests/services.scm (live-service): Delete variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* herd: Use the Guile 2.2 'setvbuf' API.Ludovic Courtès2019-06-02
| | | | * gnu/services/herd.scm (open-connection): Use 'block for 'setvbuf'.
* services: herd: Allow to pass arguments to start-service.Mathieu Othacehe2019-01-17
| | | | * gnu/services/herd.scm (start-service)[arguments]: New optional argument.
* guix system: Load all services on reconfigure, not just stopped ones.Carlo Zancanaro2018-09-26
| | | | | | | | | | | | | | | | | This uses the 'replacement' service slot introduced in the Shepherd version 0.5.0. * gnu/services/shepherd.scm (shepherd-service-upgrade): Return a list of services that need to be restarted to complete their upgrade. * guix/scripts/system.scm (call-with-service-upgrade-info): Rename an internal variable to reflect the change to shepherd-service-upgrade. (upgrade-shepherd-services): Call 'load-services/safe' instead of 'load-services'. Print a message about services that need to be manually restarted. * gnu/services/herd.scm (load-services/safe): New procedure. * doc/guix.texi (Invoking guix system): Document the new behaviour. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* services: mcron: Add 'schedule' action.Ludovic Courtès2018-07-13
| | | | | | | | | | Inspired by <https://lists.gnu.org/archive/html/help-guix/2018-07/msg00035.html>. * gnu/services/mcron.scm (shepherd-schedule-action): New procedure. (mcron-shepherd-services): Add 'actions' field. * gnu/tests/base.scm (run-mcron-test)["schedule action"]: New test. * doc/guix.texi (Scheduled Job Execution): Mention 'herd schedule'.
* services: herd: 'with-shepherd' no longer leaves an open connection.Ludovic Courtès2018-01-21
| | | | | * gnu/services/herd.scm (with-shepherd): Use 'dynamic-wind' and close CONNECTION at the end.
* services: herd: Actions return a list of results.Ludovic Courtès2017-08-23
| | | | | | | | | | Fixes a regression introduced in 0642838b2e9ab2bd988dccb64b9e1130006347bf. * gnu/services/herd.scm (invoke-action): Explain that we get a list of results. (current-services): Expect a list of result and use the first one. (unload-service, %load-file, eval-there): Likewise.
* services: herd: Add a stop-service procedure.Christopher Baines2017-08-08
| | | | * gnu/services/herd.scm (stop-service): New procedure.
* services: herd: Fix matching ok responses from shepherd service.Christopher Baines2017-08-08
| | | | | | | | | | | | Previously the match expression case for a successful response (where error is #f) required that the result component contained a list with a single element. As far as I see when looking at the responses from the shepherd, this is not normally the case. Therefore, to avoid treating successful responses as errors, make the match requirement more permissive, accepting any value. * gnu/services/herd.scm (invoke-action): Change match condition for ok responses.
* services: herd: Make %shepherd-socket-file a parameter and export it.Mathieu Othacehe2017-05-03
| | | | | | * gnu/services/herd.scm (%shepherd-socket-file): Make it an exported parameter. (open-connection): Adapt.
* services: herd: Provide <live-service> objects.Ludovic Courtès2016-08-31
| | | | | | | | | | * gnu/services/herd.scm (<live-service>): New record type. (current-services): Change to return a single value: #f or a list of <live-service>. * guix/scripts/system.scm (call-with-service-upgrade-info): Adjust accordingly. * gnu/tests/base.scm (run-basic-test)["shepherd services"]: Adjust accordingly.
* utils: Move combinators to (guix combinators).Ludovic Courtès2016-05-04
| | | | | | | | | | | | | | | | | | | * guix/utils.scm (compile-time-value, memoize, fold2) (fold-tree, fold-tree-leaves): Move to... * guix/combinators: ... here. New file. * tests/utils.scm ("fold2, 1 list", "fold2, 2 lists") (fold-tree tests): Move to... * tests/combinators.scm: ... here. New file. * Makefile.am (MODULES, SCM_TESTS): Add them. * gnu/packages.scm, gnu/packages/bootstrap.scm, gnu/services/herd.scm, guix/build-system/gnu.scm, guix/build-system/python.scm, guix/derivations.scm, guix/gnu-maintenance.scm, guix/import/elpa.scm, guix/scripts/archive.scm, guix/scripts/build.scm, guix/scripts/graph.scm, guix/scripts/lint.scm, guix/scripts/size.scm, guix/scripts/substitute.scm, guix/serialization.scm, guix/store.scm, guix/ui.scm: Adjust imports accordingly.
* services: herd: Move UI handling to 'guix system'.Ludovic Courtès2016-05-04
| | | | | | | | | | | | | | | | | | This makes (gnu services herd) independent of (guix ui). * gnu/services/herd.scm (&shepherd-error, &service-not-found-error) (&action-not-found-error, &action-exception-error) (&unknown-shepherd-error): New error condition types. (report-action-error): Remove. (raise-shepherd-error): New procedure. (display-message): Do not use 'info' and '_'. (invoke-action): Use 'raise-shepherd-error' instead of 'report-action-error'. Do not use 'warning'. (current-services): Do not use 'warning'. * guix/scripts/system.scm (with-shepherd-error-handling): New macro. (report-shepherd-error, call-with-service-upgrade-info): New procedures. (upgrade-shepherd-services): Use it.
* services: herd: Add missing newlines in error messages.Ludovic Courtès2016-02-23
| | | | | * gnu/services/herd.scm (report-action-error): Add missing newlines in messages.
* guix system: Simply warn if we cannot talk to the shepherd.Ludovic Courtès2016-02-05
| | | | | | | | | | | | | | | Before that 'open-connection' would return #f, and thus 'current-services' would return a single #f value when its continuation expects two. Reported by calher on #guix. * gnu/services/herd.scm (open-connection): Rethrow system-error exceptions. (with-shepherd): Expect CONNECTION to always be true; remove useless 'dynamic-wind'. * guix/scripts/system.scm (warn-on-system-error): New macro. (upgrade-shepherd-services): Wrap body in 'warn-on-system-error'.
* guix system: 'reconfigure' loads and starts new services.Ludovic Courtès2016-02-03
Partly fixes <http://bugs.gnu.org/22039>. * gnu/services/herd.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. * gnu/services/shepherd.scm (shepherd-service-canonical-name): New procedure. (shepherd-service-file): Export. * guix/scripts/system.scm (upgrade-shepherd-services): New procedure. (switch-to-system): Use it. * guix/ui.scm (info): New procedure. * doc/guix.texi (Invoking guix system): Mention system services.