Commit Graph

65 Commits

Author SHA1 Message Date
Dustin J. Mitchell
bb7130f960 Support multiple exit codes
..with more specific error enums.
2021-05-18 18:57:55 +00:00
Dustin J. Mitchell
73b6648d06 assert that working-set element 0 is None 2021-05-16 09:42:18 -04:00
Dustin J. Mitchell
5f6918fbc7 Skip element 0 when rebuilding the working set
The existing code was correct, assuming that element 0 is always None,
but this is clearer.
2021-05-16 09:42:17 -04:00
Dustin J. Mitchell
fa7623ebe7 Handle setting a working set item to None twice
Without this, setting an item to None that did not already exist failed,
because the kv delete operation did not find the referenced key.

This also checks that the index is not 0, which is not allowed as the
working set is 1-indexed.
2021-05-16 09:40:35 -04:00
Dustin J. Mitchell
3a2450cb23 provide context for errors to help debugging 2021-05-16 09:40:35 -04:00
Dustin J. Mitchell
cbe11a1d3d fix new clippy warnings 2021-05-16 09:38:40 -04:00
Dustin J. Mitchell
373cef9d33 [breaking] Include /v1/ in the sync-server paths
This is an incompatible change to the sync-server protocol.
2021-05-14 12:51:24 -04:00
Dustin J. Mitchell
c8d6619d71 Replace tempfile with tempdir 2021-04-16 19:29:27 -04:00
Dustin J. Mitchell
c2349cf708 Update links to point to new org 2021-04-03 19:44:31 -04:00
Dustin J. Mitchell
3fc07c9e83 Merge pull request #170 from djmitche/dependabot/cargo/ureq-2.1.0
Bump ureq from 1.5.2 to 2.1.0
2021-03-29 19:51:16 -04:00
Dustin J. Mitchell
fdeadfd981 Fix upper_case_acronyms lint 2021-03-29 13:26:02 +00:00
Dustin J. Mitchell
0f02b38fd8 Modify ureq usage for new version 2021-03-28 17:48:31 -04:00
dbr
5ee67d65e2 Remove whitespace in comment to avoid cargo fmt doing weird things 2021-03-25 18:29:53 +11:00
dbr
6d77b9a319 cargo fmt 2021-03-25 17:10:11 +11:00
dbr
4d9755c43b Replace 'failure' crate with anyhow+thiserror
Closes #148
2021-03-25 16:33:35 +11:00
Dustin J. Mitchell
ae4cee1ac3 add docs for the 'server' and 'storage' modules 2021-01-10 22:22:18 -05:00
Dustin J. Mitchell
02d9c577ab use StorageConfig instead of ReplicaConfig 2021-01-10 22:22:18 -05:00
Dustin J. Mitchell
b004b6cb93 use ServerConfig::into_server instead of server::from_config 2021-01-10 22:22:18 -05:00
Dustin J. Mitchell
15ffc62279 rename taskstorage to storage 2021-01-10 22:22:17 -05:00
Dustin J. Mitchell
b95c146a7e Adjust Tag syntax to match TaskWarrior 2021-01-10 03:47:38 +00:00
Dustin J. Mitchell
087769146e Centralize API for working set to a single struct
Rather than allow addressing tasks either by working set ID or uuid,
with attendant performance issues, this moves the API for the working
set to a single struct that just serves as a 1-1 mapping of indexes to
UUIDs.  It's up to the caller to use this information.
2021-01-09 23:42:27 +00:00
Dustin J. Mitchell
45d3e38c63 Always pass Uuids by value
Rust handles this well.  Fixes #125.
2021-01-09 22:09:06 +00:00
Dustin J. Mitchell
5e92770eb8 Automatically rebuild working set after sync 2021-01-02 14:47:36 -05:00
Dustin J. Mitchell
dc2df10158 Control whether to renumber the working set when rebuilding it 2021-01-02 14:47:36 -05:00
Dustin J. Mitchell
b62370c150 Rename replica.gc to replica.rebuild_working_set
The command-line operation is still `gc`, but we'll break that down into
finer pieces in the replica.
2021-01-02 13:23:48 -05:00
Dustin J. Mitchell
31378cb8d4 Include client key in a header, not the URL
Since this value is used both for identification and authentication, it
shouldn't be in the URL where it might be logged or otherwise
discovered.
2020-12-28 23:08:42 +00:00
Dustin J. Mitchell
92d629522b rename client id -> client key 2020-12-28 21:32:59 +00:00
Dustin J. Mitchell
a8d45c67c6 Encrypt content sent to the server
This implements client-side encryption, so that users' task information
is not availble to the server (or to anyone who does not have the
`encryption_secret`).
2020-12-27 18:51:41 +00:00
Dustin J. Mitchell
00f548c713 implement generic report generation 2020-12-26 04:11:20 +00:00
Dustin J. Mitchell
e7b7e88bc9 convert unrwap to expect and add testing 2020-12-25 02:52:49 +00:00
Dustin J. Mitchell
8a10fa8335 fix some more pedantic lints 2020-12-25 02:43:51 +00:00
Dustin J. Mitchell
8989b0d2e3 Fix clippy warnings and make them all errors 2020-12-24 17:39:49 +00:00
Dustin J. Mitchell
28c5fb2268 Add support for task tags
Based on properties named `tag.<tag>` as already documented
2020-12-21 20:43:09 +00:00
Dustin J. Mitchell
2c579b9f01 Switch to a command-line API closer to TaskWarrior
* Use a parser (rather than clap) to process the command line
* Outline some generic support for filtering, reporting, modifying, etc.
* Break argument parsing strictly from invocation, to allow independent testing
2020-12-19 16:40:09 -05:00
Dustin J. Mitchell
de03209285 bits of docs 2020-11-29 21:26:39 -05:00
Dustin J. Mitchell
0a1ee470f7 use log and env_logger, and add some logging around sync 2020-11-29 18:18:28 -05:00
Dustin J. Mitchell
1b7dbd0715 remove delete_task from the Replica API so it's not misused 2020-11-29 14:26:47 -05:00
Dustin J. Mitchell
42d988d601 fix clippy warnings 2020-11-29 14:05:51 -05:00
Dustin J. Mitchell
47cd051bd7 Merge pull request #71 from djmitche/issue7
Add start and stop commands
2020-11-28 23:19:21 -05:00
Dustin J. Mitchell
0e4ab4b88f Add start and stop commands 2020-11-28 23:12:37 -05:00
Dustin J. Mitchell
8af7ba286d Factor replica and sync configuration into simple owned structs 2020-11-28 16:57:32 -05:00
Dustin J. Mitchell
1a92613ddc take configuration in env vars temporarily 2020-11-28 10:02:17 -05:00
Dustin J. Mitchell
2a37f090a5 Add RemoteServer to the taskchampion crate 2020-11-27 20:15:17 -05:00
Dustin J. Mitchell
d46f20e75a adjust visibility, comment 2020-11-27 18:16:42 -05:00
Dustin J. Mitchell
0f98727d9b replica.new_task now invents its own uuid 2020-11-26 22:44:13 -05:00
Dustin J. Mitchell
2064057688 fix clippy warnings
I don't know why these are "intermittent"
2020-11-26 22:36:31 -05:00
Dustin J. Mitchell
26b17c6dbc Revert "add signing support"
It turns out we don't need this.

This reverts commit e92fc0628b.
2020-11-26 22:34:20 -05:00
Dustin J. Mitchell
3537db9bbe implement a local sync server 2020-11-25 19:13:32 -05:00
Dustin J. Mitchell
8f7e2e2790 add a 'task sync' command using a copy of the test server 2020-11-25 18:07:04 -05:00
Dustin J. Mitchell
a81c84d7c7 refactor sync to new model 2020-11-25 17:58:03 -05:00