parent
5e6f09795c
commit
2eed138026
@ -0,0 +1,71 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
let cfg = config.services.barrier; |
||||
in { |
||||
|
||||
meta.maintainers = with maintainers; [ kritnich ]; |
||||
|
||||
options.services.barrier = { |
||||
|
||||
client = { |
||||
|
||||
enable = mkEnableOption "Barrier Client daemon"; |
||||
|
||||
name = mkOption { |
||||
type = types.nullOr types.str; |
||||
default = null; |
||||
description = '' |
||||
Screen name of client. Defaults to hostname. |
||||
''; |
||||
}; |
||||
|
||||
server = mkOption { |
||||
type = types.str; |
||||
description = '' |
||||
Server to connect to formatted as |
||||
<literal><host>[:<port>]</literal>. |
||||
Port defaults to <literal>24800</literal>. |
||||
''; |
||||
}; |
||||
|
||||
tray = mkEnableOption "the system tray icon" // { default = true; }; |
||||
|
||||
enableCrypto = mkEnableOption "crypto (SSL) plugin" // { |
||||
default = true; |
||||
}; |
||||
|
||||
enableDragDrop = mkEnableOption "file drag & drop"; |
||||
|
||||
extraFlags = mkOption { |
||||
type = types.listOf types.str; |
||||
default = [ "-f" ]; |
||||
defaultText = literalExample ''[ "-f" ]''; |
||||
description = '' |
||||
Additional flags to pass to <command>barrierc</command>. |
||||
See <command>barrierc --help</command>. |
||||
''; |
||||
}; |
||||
|
||||
}; |
||||
}; |
||||
|
||||
config = mkIf cfg.client.enable { |
||||
systemd.user.services.barrierc = { |
||||
Unit = { |
||||
Description = "Barrier Client daemon"; |
||||
After = [ "graphical-session-pre.target" ]; |
||||
PartOf = [ "graphical-session.target" ]; |
||||
}; |
||||
Install.WantedBy = [ "graphical-session.target" ]; |
||||
Service.ExecStart = with cfg.client; |
||||
toString ([ "${pkgs.barrier}/bin/barrierc" ] |
||||
++ optional (name != null) "--name ${name}" |
||||
++ optional (!tray) "--no-tray" |
||||
++ optional enableCrypto "--enable-crypto" |
||||
++ optional enableDragDrop "--enable-drag-drop" ++ extraFlags |
||||
++ [ server ]); |
||||
}; |
||||
}; |
||||
|
||||
} |
@ -0,0 +1,20 @@ |
||||
{ config, pkgs, ... }: |
||||
|
||||
{ |
||||
config = { |
||||
services.barrier.client = { |
||||
enable = true; |
||||
server = "testServer"; |
||||
}; |
||||
|
||||
nixpkgs.overlays = |
||||
[ (self: super: { barrier = pkgs.writeScriptBin "dummy-barrier" ""; }) ]; |
||||
|
||||
nmt.script = '' |
||||
clientServiceFile=home-files/.config/systemd/user/barrierc.service |
||||
|
||||
assertFileExists $clientServiceFile |
||||
assertFileRegex $clientServiceFile 'ExecStart=.*/bin/barrierc --enable-crypto -f testServer' |
||||
''; |
||||
}; |
||||
} |
@ -0,0 +1 @@ |
||||
{ barrier-basic-configuration = ./basic-configuration.nix; } |
Loading…
Reference in new issue