8b58593193
There is a temporary issue affecting the retrieval of discovery documents in the Google Mail API: https://issuetracker.google.com/issues/160441983 It's possible to work around this by hardcoding the document instead of retrieving it over the network, as all other API calls still work as they should. This does exactly that by generating a patch to apply to lieer, from the file checked in to the depot with this commit. This workaround should be reverted once Google has fixed the issue upstream. Change-Id: I0063d0bc67753ffa5261c2aa059c7bfd09136ba0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/945 Tested-by: BuildkiteCI Reviewed-by: isomer <isomer@tvl.fyi>
56 lines
1.5 KiB
Nix
56 lines
1.5 KiB
Nix
# 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;
|
|
|
|
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
|
|
'';
|
|
discoveryPatch = runCommand "discovery_doc.patch" {} ''
|
|
export DISCOVERY_DOC='${./gmail-api.json}'
|
|
cat ${./discovery_doc.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
|
|
discoveryPatch
|
|
./send_scope.patch
|
|
];
|
|
|
|
propagatedBuildInputs = with python3Packages; [
|
|
notmuch
|
|
oauth2client
|
|
google_api_python_client
|
|
tqdm
|
|
];
|
|
}
|