Commit graph

202 commits

Author SHA1 Message Date
b9e553f112 use base64 crate instead of base64ct, no constant time necessary 2025-07-03 14:20:30 +00:00
ea453da433 [wip] unit tests for sharry module
- doc + testing for `uri` module
2025-07-03 13:10:19 +00:00
b01eb69e95 Merge branch 'develop' into feature/unit_tests 2025-07-03 13:07:20 +00:00
fada53044d sharry::ids formatting 2025-07-03 13:07:09 +00:00
67b048f9ac use to_string instead of to_owned where applicable 2025-07-03 13:05:56 +00:00
a7cddf3205 Merge branch 'develop' into feature/unit_tests 2025-07-03 13:05:09 +00:00
46913e93b9 use to_string instead of to_owned where applicable 2025-07-03 13:02:13 +00:00
470ebc4305 uri::Uri creation 2025-07-03 12:58:53 +00:00
f4e0bc5be4 [wip] unit tests for sharry module
- doc + testing for `uri` module
2025-07-03 11:07:32 +00:00
abf76c9df7 move check_trait to crate root 2025-07-03 10:32:46 +00:00
2cc13f24e7 minor refactoring
- untangle `CacheFile::{rewind_chunk, abort_upload}`
- change `file::Uploading::rewind` signature to a more "builder"esque pattern
2025-07-02 12:01:07 +00:00
ad1854dfb8 [wip] unit tests for sharry module
- makeover for `json` module
2025-07-02 11:39:49 +00:00
d891e6d1c4 [wip] unit tests for sharry module
- `ids` done
2025-07-01 19:12:48 +00:00
91085a9eec Merge branch 'develop' into feature/unit_tests 2025-07-01 18:56:33 +00:00
d55684096f remove unneeded macro param in error::impl_error_from 2025-07-01 18:51:49 +00:00
de208a20d5 clippy fix 2025-07-01 15:24:26 +00:00
3bfdf87277 Merge branch 'develop' into feature/unit_tests 2025-07-01 15:20:18 +00:00
0d68d139d5 improved error handling 2025-07-01 15:20:07 +00:00
2eb651f919 [wip] doc for sharry module 2025-06-28 09:24:46 +00:00
903fbc3480 [wip] unit tests for sharry module 2025-06-27 16:59:31 +00:00
bc4c15d17c consolidate sharry module 2025-06-27 08:34:13 +00:00
3f00e08422 consolidate sharry::api module 2025-06-27 08:29:57 +00:00
357f455ec0 import strategy for error module (cont.) 2025-06-27 02:03:49 +00:00
e3fc06b019 Merge branch 'develop' into feature/api_structs 2025-06-27 02:02:36 +00:00
2315c9cd2e import strategy for error module 2025-06-27 01:55:43 +00:00
c7b24b1250 add id::{AliasID, ShareID} 2025-06-27 01:47:38 +00:00
d8c48b74ca remove unnecessary impl AsRef<str> for FileID 2025-06-26 10:15:54 +00:00
d37797d2ec clippy fix 2025-06-26 10:13:23 +00:00
e0c5b5517f better unit testing for FileID 2025-06-26 10:06:43 +00:00
087cef5d6f Merge branch 'develop' into feature/api_structs 2025-06-26 09:59:59 +00:00
b17f239801 create Error::Mismatch variant 2025-06-26 09:56:29 +00:00
5adbf8cb38 ProgressBar handling simplification 2025-06-26 00:08:18 +00:00
3258b8fb74 prompt user before rebuilding share 2025-06-25 23:52:16 +00:00
c9c21aa128 split api.rs into modules
- `id` for multiple "ID" types
- `json` for types directly interacting with the Sharry API
- `uri` for the `Uri` type
- activate testing
2025-06-25 23:43:57 +00:00
f1c6eb5d75 create struct sharry::api::FileID 2025-06-25 23:20:57 +00:00
f2b063ba85 minor changes
- adjust `main` log levels
- lower default upload chunk size to utilize common cache sizes
2025-06-25 22:52:46 +00:00
465c857126 implement better hashing
- move hashing back into `cachefile` to correctly handle the `rebuild_share` case
- add `-n` / `--no-hash` CLI switch to explicitly skip hashing
2025-06-25 22:47:55 +00:00
1f9c247439 Merge branch 'develop' into feature/hashing
- with "clippy fix" and "cargo fmt"
2025-06-25 21:07:24 +00:00
e391821fe5 adjust crate structure
- move `sharry::client::ClientError` to `error::Error`
2025-06-25 16:48:00 +00:00
9000c8a46b clippy fix 2025-06-25 16:34:32 +00:00
d1d7b55585 adjust crate structure 2025-06-25 16:34:22 +00:00
78fb04403c main adjust log levels 2025-06-25 16:12:52 +00:00
0b8bebad6e implement better hashing
- actually, calling `file::Checked::hash` in `AppState::from_args` was correct: If `AppState::rebuild_share` is called, hashes are in a known state.
- call `check_hash` in `AppState::try_resume`
- minor renamings
2025-06-25 10:44:36 +00:00
11a5106473 implement better hashing
- call `file::Checked::hash` in `CacheFile::from_args` instead
2025-06-24 22:25:22 +00:00
ea5ef1fa10 implement better hashing
- call `file::Checked::hash` in `AppState::from_args`
2025-06-24 19:34:11 +00:00
2bcbc0d71c implement better hashing
- use `blake2b_simd` crate and optimize
2025-06-24 19:27:13 +00:00
97e9e41117 error 404 defaults to "bad URI" 2025-06-24 16:31:31 +00:00
6e553cc185 implement better hashing
- use Blake2b128 for the CLI arguments hash
2025-06-24 16:29:38 +00:00
ece742a1e3 ureq error message parsing 2025-06-24 02:08:35 +00:00
1e05155cc1 minor refactoring 2025-06-24 02:05:27 +00:00
005c5f7cfa move AppState::is_done into AppState::upload_chunk 2025-06-24 01:53:27 +00:00
14e1bed708 unwrap AppState::progress RefCell 2025-06-24 01:35:21 +00:00
72e9a5d40f styling/doc 2025-06-24 01:28:09 +00:00
a8ff354a51 fix some progressbar issues 2025-06-24 01:11:36 +00:00
5b403ea129 Merge branch 'develop' into feature/rebuild_share 2025-06-24 00:23:09 +00:00
c734355ebb file names from args, not from appstate
- remove `AppState::file_names`, `CacheFile::file_names`, `FileState::file_name`
- add `Cli::file_names`
- clippy fix
2025-06-24 00:18:26 +00:00
393feec125 [wip] implement handling "missing share"
- rework `CacheFile` API
- fix `AppState` using new `CacheFile`
- fix `main` using new `AppState`
- logging enhancement
2025-06-24 00:11:24 +00:00
df055fc4e9 [wip] implement handling "missing share"
- rework `CacheFile` API
- fix `AppState::{next_chunk, is_done}`
2025-06-19 10:34:28 +00:00
865566ad0c [wip] implement handling "missing share"
- rework `CacheFile` API
2025-06-18 23:40:27 +00:00
3b46d228f4 impl AppState::requeue_file 2025-06-18 20:03:26 +00:00
79bc8e67a7 "verbose" CLI param 2025-06-18 18:58:49 +00:00
4eb0627a5f "retry-limit" CLI param 2025-06-18 18:44:24 +00:00
a4bef827d1 fix clippy lint without drop 2025-06-18 18:14:39 +00:00
a633f4e228 move most printing/styling into own file 2025-06-18 18:14:09 +00:00
01bcf92d9c clippy fix 2025-06-18 14:49:30 +00:00
783346c888 major refactoring
- `sharry::Client` fn signatures
- `sharry::ClientError` rework
- `file::Uploading` saves `file_id` instead of `patch_uri`
- `impl sharry::Client for ureq::Agent` into separate file
2025-06-18 14:21:25 +00:00
de07d556a2 minor refactoring
- `use crate::` where appropriate
- cleanup CLI parsing
- `Uri::with_protocol` -> `Uri::new`
2025-06-18 13:04:04 +00:00
6ca3e6c9dd [wip] documentation
- added more notes
- minor cleanup
2025-06-15 00:56:58 +00:00
4bf18631d4 bug: don't allow chunk_size of 0 2025-06-15 00:46:02 +00:00
56223b3ae8 [wip] documentation
- added more notes
- `main.rs` logging
- clearer matching of `ClientError::ResponseStatus`
2025-06-15 00:44:28 +00:00
205af655e5 remove unnecessary Uri::endpoint call 2025-06-14 12:34:58 +00:00
10bb4feef5 logging improvements 2025-06-14 00:07:43 +00:00
e257d1cf8c CLI ergonomy 2025-06-13 23:50:42 +00:00
5b018cf84b minor cleanups 2025-06-13 23:11:40 +00:00
876869b073 Merge branch 'feature/retry_chunk' into develop 2025-06-13 23:05:16 +00:00
e2151b592c show "cargo build", program completion 2025-06-13 23:02:41 +00:00
30855ed8ff [wip] retry chunks
- `AppState::rewind` impl
- error handling in `main`
2025-06-13 23:00:36 +00:00
0a8e5cf3f0 [wip] retry chunks
- move buffer into main function again, avoiding `unsafe` code
- partially revert `Chunk` changes, removing `unsafe` parts
2025-06-13 22:32:41 +00:00
f05e112040 [wip] retry chunks
- make `Chunk` lifetime agnostic by using a raw pointer
- add `fn Uploading::rewind`
- add `fn AppState::{next_chunk, is_done}`
2025-06-13 17:03:25 +00:00
5556a658f5 minor refactoring
- var names
- logging
2025-06-13 16:07:25 +00:00
09d22a0ad9 minor renamings 2025-06-12 23:43:03 +00:00
f77acc1afd cleanup some unwrap() 2025-06-12 23:28:42 +00:00
9f1e0cfc6c [wip] impl Client for ureq::Agent
- Client is now owned by `AppState`
- minor cleanups
2025-06-12 23:01:16 +00:00
b9a0e1eeb0 [wip] impl Client for ureq::Agent
- progress bar handling
- share notify timing
2025-06-12 22:29:01 +00:00
2edc690331 [wip] impl Client for ureq::Agent
- clippy fix
2025-06-12 16:25:15 +00:00
ed10f269c8 [wip] impl Client for ureq::Agent
- wip: factor out `SavedState`
2025-06-12 16:24:17 +00:00
fb06725f05 [wip] impl Client for ureq::Agent
- wip: factor out `SavedState`
2025-06-12 09:26:11 +00:00
67da081ef9 [wip] impl Client for ureq::Agent
- error handling refactoring
2025-06-12 00:54:26 +00:00
9b1f7f872c [wip] impl Client for ureq::Agent
- minor refactorings
2025-06-11 18:17:16 +00:00
592e7bf76e [wip] impl Client for ureq::Agent
- `AppState` creation
2025-06-11 00:28:23 +00:00
0993679641 [wip] impl Client for ureq::Agent
- clippy fix
2025-06-11 00:06:08 +00:00
dc2a330d58 [wip] impl Client for ureq::Agent
- Chunk implementation
2025-06-10 23:39:20 +00:00
d607380659 [wip] impl Client for ureq::Agent
- factored out `file` module
- renamed some stuff
- decoupled `sharry::client` from `file`
2025-06-10 18:20:52 +00:00
69bef4e994 [wip] impl Client for ureq::Agent
- impl `sharry_file_patch`
- completely rework chunking logic
2025-06-10 01:17:17 +00:00
c9528a9ac1 [wip] impl Client for ureq::Agent
- use `sharry_file_create` in `AppState`
2025-06-09 00:05:58 +00:00
09af480379 [wip] impl Client for ureq::Agent
- remove `sharry::alias` and `sharry::share` (reduced to IDs)
- use `sharry_share_create` in `AppState`
2025-06-08 21:31:50 +00:00
90cecd015e [wip] impl Client for ureq::Agent 2025-06-08 17:13:01 +00:00
51ecab41bb [wip] impl Client for ureq::Agent 2025-06-08 01:20:41 +00:00
5b6fa3eaf7 minor imports refactoring 2025-06-08 00:40:29 +00:00
e208df9711 move simplified SharryFile trait back into mod.rs 2025-06-06 23:48:22 +00:00