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