Locking stderr and the progress bar in SSH
[?]
Dec 5, 2020, 3:24 PM
KTTKF3RWYAK2YSH2DYYW5QVG4KSNGWUBJBFHKE24OJ7LFCBF5FEACDependencies
- [2]
PCEJFKFXProgress bar for upload and apply - [3]
SZWBLWZ4Reading ~/.ssh/config - [4]
SXEYMYF7Fixing the bad changes in history (unfortunately, by rebooting). - [5]
K6GWUOD5Styling progress bars - [6]
WLUID7NADo not block when downloading more than 100 changes over SSH - [7]
UDHP4ZVBFixing SSH asynchronicity issues - [8]
Q7CAYX5NFixing Windows compilation - [9]
QE64ATLZFixing asynchronicity problems in SSH - [10]
Q45QHPO4Feedback on network stuff - [11]
367UBQ6KForwarding SSH stderr, and progress bar for push
Change contents
- replacement in pijul/src/remote/ssh.rs at line 35
.unwrap();.unwrap();static ref PROGRESS: Arc<Mutex<Option<ProgressBar>>> = Arc::new(Mutex::new(None)); - replacement in pijul/src/remote/ssh.rs at line 341
let stderr = std::io::stderr();let mut handle = stderr.lock();let result = handle.write_all(data);let data = data.to_vec(); - replacement in pijul/src/remote/ssh.rs at line 343
result?;*PROGRESS.lock().await = None;let stderr = std::io::stderr();let mut handle = stderr.lock();handle.write_all(&data)?; - edit in pijul/src/remote/ssh.rs at line 692
*PROGRESS.lock().await = Some(progress); - replacement in pijul/src/remote/ssh.rs at line 710
progress.inc(1);if let Some(ref mut progress) = *PROGRESS.lock().await {progress.inc(1);} - replacement in pijul/src/remote/ssh.rs at line 715
progress.set_style(indicatif::ProgressStyle::default_bar().template("✓ Uploading changes {wide_bar} {pos}/{len}"),);progress.finish();if let Some(ref mut progress) = *PROGRESS.lock().await {progress.set_style(indicatif::ProgressStyle::default_bar().template("✓ Uploading changes {wide_bar} {pos}/{len}"),);progress.finish();} - edit in pijul/src/remote/ssh.rs at line 778
*PROGRESS.lock().await = Some(progress); - replacement in pijul/src/remote/ssh.rs at line 781
progress.inc(1);if let Some(ref mut progress) = *PROGRESS.lock().await {progress.inc(1);} - replacement in pijul/src/remote/ssh.rs at line 786
progress.abandon();if let Some(ref mut progress) = *PROGRESS.lock().await {progress.abandon();} - replacement in pijul/src/remote/ssh.rs at line 793
if !progress.is_finished() {progress.set_style(indicatif::ProgressStyle::default_bar().template("✓ Downloading changes {wide_bar} {pos}/{len}"),);progress.finish();if let Some(ref mut progress) = *PROGRESS.lock().await {if !progress.is_finished() {progress.set_style(indicatif::ProgressStyle::default_bar().template("✓ Downloading changes {wide_bar} {pos}/{len}"),);progress.finish();} - edit in pijul/src/remote/ssh.rs at line 826
*PROGRESS.lock().await = Some(progress); - replacement in pijul/src/remote/ssh.rs at line 841
progress.set_style(indicatif::ProgressStyle::default_spinner().template("✓ Cloning channel"));progress.finish();if let Some(ref mut progress) = *PROGRESS.lock().await {progress.set_style(indicatif::ProgressStyle::default_spinner().template("✓ Cloning channel"),);progress.finish();}