1{
2 config,
3 pkgs,
4 lib,
5 ...
6}:
7
8let
9
10 cfg = config.programs._1password;
11
12in
13{
14 imports = [
15 (lib.mkRemovedOptionModule [ "programs" "_1password" "gid" ] ''
16 A preallocated GID will be used instead.
17 '')
18 ];
19
20 options = {
21 programs._1password = {
22 enable = lib.mkEnableOption "the 1Password CLI tool";
23
24 package = lib.mkPackageOption pkgs "1Password CLI" {
25 default = [ "_1password-cli" ];
26 };
27 };
28 };
29
30 config = lib.mkIf cfg.enable {
31 environment.systemPackages = [ cfg.package ];
32 users.groups.onepassword-cli.gid = config.ids.gids.onepassword-cli;
33
34 security.wrappers = {
35 "op" = {
36 source = "${cfg.package}/bin/op";
37 owner = "root";
38 group = "onepassword-cli";
39 setuid = false;
40 setgid = true;
41 };
42 };
43 };
44}