mirror of
https://github.com/denoland/deno.git
synced 2025-10-02 15:14:33 +00:00
fix(repl): Prevent panic on broken pipe (#21945)
This commit is contained in:
parent
1c4db2aca9
commit
0eba180fdb
2 changed files with 43 additions and 5 deletions
|
@ -1,5 +1,8 @@
|
|||
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
||||
|
||||
use std::io;
|
||||
use std::io::Write;
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
use crate::args::CliOptions;
|
||||
|
@ -241,15 +244,24 @@ pub async fn run(
|
|||
|
||||
// Doing this manually, instead of using `log::info!` because these messages
|
||||
// are supposed to go to stdout, not stderr.
|
||||
// Using writeln, because println panics in certain cases
|
||||
// (eg: broken pipes - https://github.com/denoland/deno/issues/21861)
|
||||
if !cli_options.is_quiet() {
|
||||
println!("Deno {}", crate::version::DENO_VERSION_INFO.deno);
|
||||
println!("exit using ctrl+d, ctrl+c, or close()");
|
||||
let mut handle = io::stdout().lock();
|
||||
|
||||
writeln!(handle, "Deno {}", crate::version::DENO_VERSION_INFO.deno)?;
|
||||
writeln!(handle, "exit using ctrl+d, ctrl+c, or close()")?;
|
||||
|
||||
if repl_flags.is_default_command {
|
||||
println!(
|
||||
writeln!(
|
||||
handle,
|
||||
"{}",
|
||||
colors::yellow("REPL is running with all permissions allowed.")
|
||||
);
|
||||
println!("To specify permissions, run `deno repl` with allow flags.")
|
||||
)?;
|
||||
writeln!(
|
||||
handle,
|
||||
"To specify permissions, run `deno repl` with allow flags."
|
||||
)?;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue