refresh changed files on FS changes
[?]
Feb 11, 2025, 7:53 AM
UB2ITZJSDADVINSQEZ3HA6PVGA7OA6JYFG5GMSO7Y7LOXJC4FI7ACDependencies
- [2]
6YZAVBWUInitial commit - [3]
KLR5FRIBadd fs state read/write of repos - [4]
IQDCHWCPload a pijul repo - [5]
SWWE2R6Mdisplay basic repo stuff - [6]
WT3GA27Padd cursor with selection - [7]
DVKSPF7Rtrack selected file path together with an index
Change contents
- edit in crates/libflowers_client/src/repo.rs at line 36
}pub fn refresh(state: &mut State) {let diff = diff(state);let changed_files = changed_files(&diff);state.changed_files = changed_files; - edit in crates/flowers_ui/src/main.rs at line 1
use std::path::PathBuf; - edit in crates/flowers_ui/src/main.rs at line 3
use notify_debouncer_full::notify::{RecommendedWatcher, RecursiveMode}; - edit in crates/flowers_ui/src/main.rs at line 7
use notify_debouncer_full::{new_debouncer, DebounceEventResult, Debouncer, RecommendedCache,};use std::path::PathBuf;use tokio::sync::watch;use tokio::time::Duration;use tokio_stream::wrappers::WatchStream; - replacement in crates/flowers_ui/src/main.rs at line 24
let repo = repo::load(repo_path);let repo = repo::load(repo_path.clone()); - replacement in crates/flowers_ui/src/main.rs at line 27
(State { repo, cursor }, Task::none())let (fs_watch_tx, fs_watch_rx) = watch::channel(());let mut fs_watch = new_debouncer(Duration::from_secs(1),None,move |result: DebounceEventResult| match result {Ok(events) => events.iter().for_each(|event| {// TODO: distinguish ".pijul" changes// dbg!(event);if event.kind.is_create()|| event.kind.is_modify()|| event.kind.is_remove(){let _ = fs_watch_tx.send(());}}),Err(errors) => {errors.iter().for_each(|error| eprintln!("{error:?}"))}},).unwrap();fs_watch.watch(repo_path, RecursiveMode::Recursive).unwrap();let fs_watch_rx = WatchStream::from_changes(fs_watch_rx);let task = Task::run(fs_watch_rx, |()| Message::FilesChanged);(State {fs_watch,repo,cursor,},task,) - edit in crates/flowers_ui/src/main.rs at line 65
fs_watch: Debouncer<RecommendedWatcher, RecommendedCache>, - edit in crates/flowers_ui/src/main.rs at line 76
FilesChanged, - edit in crates/flowers_ui/src/main.rs at line 86
Message::FilesChanged => {repo::refresh(&mut state.repo);} - edit in crates/flowers_ui/Cargo.toml at line 21
workspace = true[dependencies.notify-debouncer-full]workspace = true[dependencies.tokio] - edit in crates/flowers_ui/Cargo.toml at line 26[4.1642]
[dependencies.tokio-stream]workspace = true - replacement in Cargo.toml at line 26
version = "5.0"version = "6.0" - replacement in Cargo.toml at line 35
version = "8.0"version = "0.5" - replacement in Cargo.toml at line 45
version = "1.36"features = ["fs"]version = "1.43"features = ["fs", "sync"][workspace.dependencies.tokio-stream]version = "0.1"features = ["sync"] - replacement in Cargo.lock at line 95
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 392
version = "2.6.0"version = "2.8.0" - replacement in Cargo.lock at line 394
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"checksum = "8f68f53c83ab957f72c32642f3868eec03eb974d1fb82e453128456482613d36" - replacement in Cargo.lock at line 521
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 535
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 775
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 799
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 810
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 1014
version = "5.0.1"version = "6.0.0" - replacement in Cargo.lock at line 1016
checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35"checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" - replacement in Cargo.lock at line 1018
"dirs-sys 0.4.1","dirs-sys 0.5.0", - replacement in Cargo.lock at line 1047
"redox_users","redox_users 0.4.6", - replacement in Cargo.lock at line 1053
version = "0.4.1"version = "0.5.0" - replacement in Cargo.lock at line 1055
checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" - replacement in Cargo.lock at line 1059
"redox_users","windows-sys 0.48.0","redox_users 0.5.0","windows-sys 0.59.0", - replacement in Cargo.lock at line 1070
"redox_users","redox_users 0.4.6", - replacement in Cargo.lock at line 1121
"bitflags 2.6.0","bitflags 2.8.0", - edit in Cargo.lock at line 1318
][[package]]name = "file-id"version = "0.2.2"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "6bc904b9bbefcadbd8e3a9fb0d464a9b979de6324c03b3c663e8994f46a5be36"dependencies = ["windows-sys 0.52.0", - edit in Cargo.lock at line 1330
name = "filetime"version = "0.2.25"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586"dependencies = ["cfg-if","libc","libredox","windows-sys 0.59.0",][[package]] - edit in Cargo.lock at line 1358
"notify-debouncer-full","tokio","tokio-stream", - edit in Cargo.lock at line 1439
name = "fsevent-sys"version = "4.1.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"dependencies = ["libc",][[package]] - replacement in Cargo.lock at line 1669
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 1679
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 1700
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 1711
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 1836
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 1868
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 1926
"bitflags 2.6.0","bitflags 2.8.0", - edit in Cargo.lock at line 2010
name = "inotify"version = "0.11.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3"dependencies = ["bitflags 2.8.0","inotify-sys","libc",][[package]]name = "inotify-sys"version = "0.1.5"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"dependencies = ["libc",][[package]] - edit in Cargo.lock at line 2101
[[package]]name = "kqueue"version = "1.0.8"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"dependencies = ["kqueue-sys","libc",][[package]]name = "kqueue-sys"version = "1.0.4"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"dependencies = ["bitflags 1.3.2","libc",] - replacement in Cargo.lock at line 2237
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2336
"bitflags 2.6.0","bitflags 2.8.0", - edit in Cargo.lock at line 2362
name = "mio"version = "1.0.3"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd"dependencies = ["libc","log","wasi 0.11.0+wasi-snapshot-preview1","windows-sys 0.52.0",][[package]] - replacement in Cargo.lock at line 2381
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2400
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2439
"bitflags 2.6.0","bitflags 2.8.0", - edit in Cargo.lock at line 2454
][[package]]name = "notify"version = "8.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943"dependencies = ["bitflags 2.8.0","filetime","fsevent-sys","inotify","kqueue","libc","log","mio","notify-types","walkdir","windows-sys 0.59.0",][[package]]name = "notify-debouncer-full"version = "0.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d2d88b1a7538054351c8258338df7c931a590513fb3745e8c15eb9ff4199b8d1"dependencies = ["file-id","log","notify","notify-types","walkdir", - edit in Cargo.lock at line 2489
name = "notify-types"version = "2.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d"[[package]] - replacement in Cargo.lock at line 2565
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2581
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2605
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2647
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2672
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2684
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2707
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 2739
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 3272
"bitflags 2.6.0","bitflags 2.8.0", - edit in Cargo.lock at line 3284
][[package]]name = "redox_users"version = "0.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b"dependencies = ["getrandom 0.2.15","libredox","thiserror 2.0.11", - replacement in Cargo.lock at line 3381
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 3394
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 3641
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 3666
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 3743
"bitflags 2.6.0","bitflags 2.8.0", - edit in Cargo.lock at line 3952
"pin-project-lite",][[package]]name = "tokio-stream"version = "0.1.17"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047"dependencies = ["futures-core","pin-project-lite","tokio","tokio-util",][[package]]name = "tokio-util"version = "0.7.13"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078"dependencies = ["bytes","futures-core","futures-sink", - edit in Cargo.lock at line 3977
"tokio", - replacement in Cargo.lock at line 4317
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4329
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4351
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4363
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4375
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4388
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4401
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4484
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4511
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 4552
"bitflags 2.6.0","bitflags 2.8.0", - edit in Cargo.lock at line 4708
version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"dependencies = ["windows-targets 0.48.5",][[package]]name = "windows-sys" - replacement in Cargo.lock at line 4910
"bitflags 2.6.0","bitflags 2.8.0", - replacement in Cargo.lock at line 5034
"bitflags 2.6.0","bitflags 2.8.0",