lol
1{ stdenv
2, callPackage
3, channel ? "stable"
4, fetchurl
5, lib
6# This is only relevant for Linux, so we need to pass it through
7, polkitPolicyOwners ? [ ] }:
8
9let
10
11 pname = "1password";
12 version = if channel == "stable" then "8.10.20" else "8.10.20-1.BETA";
13
14 sources = {
15 stable = {
16 x86_64-linux = {
17 url = "https://downloads.1password.com/linux/tar/stable/x86_64/1password-${version}.x64.tar.gz";
18 hash = "sha256-KOKqI64uI454ryLy/zdD0jxgY3GekBFoh028ftt1Twg=";
19 };
20 aarch64-linux = {
21 url = "https://downloads.1password.com/linux/tar/stable/aarch64/1password-${version}.arm64.tar.gz";
22 hash = "sha256-8MDJFG5d81Alxs1hqLw7DP+Pte+haGKfiZ/erGvks5A=";
23 };
24 x86_64-darwin = {
25 url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
26 hash = "sha256-T+f19Q/pzsC6lh8OF/w/pzRLBfAdlk1gwQz8funkx8Q=";
27 };
28 aarch64-darwin = {
29 url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
30 hash = "sha256-kmal5wfqCKAlg7c+xVHM39qrucr+Kaxr4pNBYwKfs5g=";
31 };
32 };
33 beta = {
34 x86_64-linux = {
35 url = "https://downloads.1password.com/linux/tar/beta/x86_64/1password-${version}.x64.tar.gz";
36 hash = "sha256-+wHxtlE0zeVEObzdpcIP75LKbbjsG8LMqdIPFkY0BoU=";
37 };
38 aarch64-linux = {
39 url = "https://downloads.1password.com/linux/tar/beta/aarch64/1password-${version}.arm64.tar.gz";
40 hash = "sha256-BRsp/hhBwgQFU+5Tt1M9V5Lx8oRLN3uaqLrzrPo/xpo=";
41 };
42 x86_64-darwin = {
43 url = "https://downloads.1password.com/mac/1Password-${version}-x86_64.zip";
44 hash = "sha256-WVP5a007cU1GR/lnL7C6QiJpTTsjzaiS69H2LJzYm70=";
45 };
46 aarch64-darwin = {
47 url = "https://downloads.1password.com/mac/1Password-${version}-aarch64.zip";
48 hash = "sha256-BBSUSSnot1ktC0ik7yMhqsgLdkeQBrJUpHBvwu0w9m0=";
49 };
50 };
51 };
52
53 src = fetchurl {
54 inherit (sources.${channel}.${stdenv.system}) url hash;
55 };
56
57 meta = with lib; {
58 description = "Multi-platform password manager";
59 homepage = "https://1password.com/";
60 sourceProvenance = with sourceTypes; [ binaryNativeCode ];
61 license = licenses.unfree;
62 maintainers = with maintainers; [ timstott savannidgerinel amaxine sebtm ];
63 platforms = builtins.attrNames sources.${channel};
64 mainProgram = "1password";
65 };
66
67in if stdenv.isDarwin
68then callPackage ./darwin.nix { inherit pname version src meta; }
69else callPackage ./linux.nix { inherit pname version src meta polkitPolicyOwners; }