From 3d10612e9b77689d6e170b9cfe5ddf9eed9c5251 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Wed, 19 Jul 2023 08:11:14 +0800 Subject: [PATCH] services/distant: add Distant server daemon Because of this, the manager and the server services should be opted in to be enabled. --- modules/home-manager/services/distant.nix | 27 +++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/modules/home-manager/services/distant.nix b/modules/home-manager/services/distant.nix index 368d992f..a9e87718 100644 --- a/modules/home-manager/services/distant.nix +++ b/modules/home-manager/services/distant.nix @@ -11,7 +11,7 @@ let in { options.services.distant = { - enable = lib.mkEnableOption "Distant manager"; + enable = lib.mkEnableOption "Distant-related services"; package = lib.mkOption { description = lib.mkDoc "The package containing the `distant` executable."; @@ -33,10 +33,13 @@ in } ''; }; + + manager.enable = lib.mkEnableOption "Distant manager daemon"; + server.enable = lib.mkEnableOption "Distant server daemon"; }; config = lib.mkIf cfg.enable { - systemd.user.services.distant-manager = { + systemd.user.services.distant-manager = lib.mkIf cfg.manager.enable { Unit = { Description = "Distant manager daemon"; Documentation = [ "https://distant.dev" ]; @@ -47,13 +50,12 @@ in ${lib.getBin cfg.package}/bin/distant manager listen --config ${settingsFile} ${lib.optionalString (!hasCustomSocketPath) "--unix-socket ${defaultSocketPath}"} ''; Restart = "on-failure"; - StandardInput = "socket"; }; Install.WantedBy = "default.target"; }; - systemd.user.sockets.distant-manager = { + systemd.user.sockets.distant-manager = lib.mkIf cfg.manager.enable { Unit = { Description = "Distant manager daemon"; Documentation = [ "https://distant.dev" ]; @@ -61,5 +63,22 @@ in Socket.ListenStream = if hasCustomSocketPath then cfg.settings.manager.unix_socket else defaultSocketPath; }; + + systemd.user.services.distant-server = lib.mkIf cfg.server.enable { + Unit = { + Description = "Distant manager daemon"; + Documentation = [ "https://distant.dev" ]; + }; + + Service = { + ExecStart = '' + ${lib.getBin cfg.package}/bin/distant server listen --config ${settingsFile} + ''; + Restart = "on-failure"; + StandardInput = "socket"; + }; + + Install.WantedBy = "default.target"; + }; }; }