about summary refs log tree commit diff
path: root/third_party/lieer/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/lieer/default.nix')
-rw-r--r--third_party/lieer/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/third_party/lieer/default.nix b/third_party/lieer/default.nix
new file mode 100644
index 000000000000..2f58d5f1179b
--- /dev/null
+++ b/third_party/lieer/default.nix
@@ -0,0 +1,51 @@
+# 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, ... }:
+
+# For a variety of reasons (specific to my setup), custom OAuth2
+# scopes are used.
+#
+# The below client ID is the default for *@tazj.in and is overridden
+# in a private repository for my work account. Publishing it here is
+# not a security issue.
+{
+  clientId ? "515965513093-7b4bo4gm0q09ccsmikkuaas9a40j0jcj.apps.googleusercontent.com",
+  clientSecret ? "3jVbpfT4GmubFD64svctJSdQ",
+  project ? "tazjins-infrastructure"
+}:
+
+with pkgs.third_party;
+
+let
+  authPatch = runCommand "client_secret.patch" {} ''
+    export CLIENT_ID='${clientId}'
+    export CLIENT_SECRET='${clientSecret}'
+    export PROJECT_ID='${project}'
+    cat ${./api_client.patch} | ${gettext}/bin/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
+    ./send_scope.patch
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    notmuch
+    oauth2client
+    google_api_python_client
+    tqdm
+  ];
+}