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