diff --git a/TODO.txt b/TODO.txt index 3481ae3d..f3086e50 100644 --- a/TODO.txt +++ b/TODO.txt @@ -345,17 +345,8 @@ we should support right-click to unselect the bubble (atlas/studio/skip) [auto select issue] when you commit changes on git, it's considered unchanged. we should send like the last git hash too, like prior to head, too. -[add ServerStorage/RBX_ANIMSAVES to ignore list!] - globIgnorePaths: ["src/ServerStorage/RBX_ANIMSAVES/**", "src/ServerStorage/MoonAnimator2Saves/**"], - syncbackRules: { - ignoreTrees: ["ServerStorage/RBX_ANIMSAVES/**", "ServerStorage/MoonAnimator2Saves/**"], - }, - [scripts only mode] -when in scripts only mode, try to avoid the entire tree where scripts dont exist to make syncing from the Roblox plugin faster - -[luau-lsp sourcemap gen] -luau-lsp sourcemap generator --watch is leaving instances of atlas running forever +when in scripts only mode, try to avoid the entire tree where scripts dont exist to make syncing from the Roblox plugin faster. prune non-script leaves. [yielding after sync] there is some process that is making disconnecting after a one-shot sync completes take FOREVER if the server is yielding (usually from the reconciler) diff --git a/src/cli/sourcemap.rs b/src/cli/sourcemap.rs index 0ec05686..51f418db 100644 --- a/src/cli/sourcemap.rs +++ b/src/cli/sourcemap.rs @@ -1,6 +1,6 @@ use std::{ borrow::Cow, - io::{BufWriter, Write}, + io::{BufWriter, IsTerminal, Write}, mem::forget, path::{self, Path, PathBuf}, process, @@ -104,6 +104,22 @@ impl SourcemapCommand { )?; if self.watch { + if !std::io::stdin().is_terminal() { + std::thread::spawn(|| { + use std::io::Read; + let mut buf = [0u8; 1]; + loop { + match std::io::stdin().lock().read(&mut buf) { + Ok(0) | Err(_) => { + log::trace!("stdin closed, exiting --watch"); + process::exit(0); + } + Ok(_) => {} + } + } + }); + } + let rt = Runtime::new().unwrap(); loop {