about summary refs log tree commit diff
path: root/third_party/lieer/default.nix
blob: 810a3df1a5078a29bac381ae302d8e9ae961a481 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Lieer is a small tool to synchronise a Gmail account with a local
# maildir.
#
# Lieer is packaged in nixpkgs, but as of 2019-12-23 it is an old
# version using the previous branding (gmailieer).
{ pkgs, ... }:

with pkgs.third_party;

let
  # My employer does not allow third-party projects to use our email
  # accounts, but I want to use lieer for it anyways.
  #
  # To accomplish this the following derivation creates a patch that
  # replaces the API client with one that I control.
  authPatch = runCommand "client_secret.patch" {} ''
    export PATH=${lib.makeBinPath [ gettext ]}:$PATH
    export CLIENT_SECRET='${builtins.getEnv "LIEER_CLIENT_SECRET"}'
    cat ${./api_client.patch} | envsubst > $out
  '';
in python3Packages.buildPythonApplication rec {
  name = "lieer-${version}";
  version = "1.0";

  src = fetchFromGitHub {
    owner = "gauteh";
    repo = "lieer";
    rev = "v${version}";
    sha256 = "1zzylv8xbcrh34bz0s29dawzcyx39lai8y8wk0bl4x75v1jfynvf";
  };

  patches = [ authPatch ];

  propagatedBuildInputs = with python3Packages; [
    notmuch
    oauth2client
    google_api_python_client
    tqdm
  ];
}