nixpkgs/pkgs/by-name/sy/syncall/package.nix
2024-06-13 11:35:04 +03:00

76 lines
1.8 KiB
Nix

{ lib
, python3
, fetchFromGitHub
}:
python3.pkgs.buildPythonApplication rec {
pname = "syncall";
version = "1.8.5";
format = "pyproject";
src = fetchFromGitHub {
owner = "bergercookie";
repo = "syncall";
rev = "v${version}";
hash = "sha256-f9WVZ1gpVG0wvIqoAkeaYBE4QsGXSqrYS4KyHy6S+0Q=";
};
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail 'loguru = "^0.5.3"' 'loguru = "^0.7"' \
--replace-fail 'PyYAML = "~5.3.1"' 'PyYAML = "^6.0"' \
--replace-fail 'bidict = "^0.21.2"' 'bidict = "^0.23"' \
--replace-fail 'typing = "^3.7.4"' '''
'';
nativeBuildInputs = [
python3.pkgs.poetry-core
python3.pkgs.poetry-dynamic-versioning
];
propagatedBuildInputs = with python3.pkgs; [
bidict
bubop
click
item-synchronizer
loguru
python-dateutil
pyyaml
rfc3339
typing
# asana optional-dep
asana
# caldav optional-dep
caldav
icalendar
# fs optional-dep
xattr
# gkeep optional-dep
# gkeepapi is unavailable in nixpkgs
# google optional-dep
google-api-python-client
google-auth-oauthlib
# notion optional-dep
# FIXME: notion-client -- broken, doesn't build.
# taskwarrior optional-dep
taskw-ng
];
postInstall = ''
# We do not support gkeep
rm $out/bin/tw_gkeep_sync
'';
pythonImportsCheck = [ "syncall" ];
meta = with lib; {
description = "Bi-directional synchronization between services such as Taskwarrior, Google Calendar, Notion, Asana, and more";
homepage = "https://github.com/bergercookie/syncall";
license = licenses.mit;
maintainers = with maintainers; [ raitobezarius ];
# Upstream issue making it practically unusable:
# https://github.com/bergercookie/syncall/issues/99
broken = true;
};
}