Compare commits
5 Commits
c484f2deb8
...
v1.1.5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d9b214ff4 | ||
|
|
80d2e7fd71 | ||
|
|
03e1311e90 | ||
|
|
a93f3ad9f6 | ||
|
|
b0407d6519 |
3
Cargo.lock
generated
3
Cargo.lock
generated
@@ -189,6 +189,7 @@ dependencies = [
|
||||
"crossterm_winapi",
|
||||
"derive_more",
|
||||
"document-features",
|
||||
"filedescriptor",
|
||||
"mio",
|
||||
"parking_lot",
|
||||
"rustix",
|
||||
@@ -1203,7 +1204,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "ostiary"
|
||||
version = "1.1.2"
|
||||
version = "1.1.5"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[package]
|
||||
name = "ostiary"
|
||||
version = "1.1.2"
|
||||
version = "1.1.5"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
crossterm = "0.29"
|
||||
crossterm = { version = "0.29", features = ["use-dev-tty"] }
|
||||
ratatui = "0.30"
|
||||
tokio = { version = "1", features = ["full"] }
|
||||
reqwest = { version = "0.12", features = ["json", "stream", "rustls-tls"], default-features = false }
|
||||
|
||||
@@ -109,7 +109,7 @@ fi
|
||||
echo ""
|
||||
ok "Launching ${BINARY}..."
|
||||
if { true </dev/tty; } 2>/dev/null; then
|
||||
exec "$INSTALL_DIR/$BINARY" </dev/tty >/dev/tty 2>/dev/tty
|
||||
"$INSTALL_DIR/$BINARY"
|
||||
else
|
||||
ok "Run: $BINARY"
|
||||
fi
|
||||
|
||||
14
src/main.rs
14
src/main.rs
@@ -172,17 +172,15 @@ async fn run_exec(
|
||||
fn prompt_first_endpoint() -> Result<(String, String)> {
|
||||
use std::io::{BufRead, BufReader, Write};
|
||||
|
||||
// Open /dev/tty directly so input works even when launched via `curl | bash`
|
||||
// (where stdin is the pipe carrying the script, not the keyboard).
|
||||
let tty = std::fs::OpenOptions::new()
|
||||
.read(true)
|
||||
.write(true)
|
||||
.open("/dev/tty")
|
||||
// Open /dev/tty read-only for keyboard input so the wizard works even when
|
||||
// stdin is a pipe (e.g. `curl | bash`). Writing goes through stdout so we
|
||||
// don't touch the terminal's write-side state before crossterm takes over.
|
||||
let tty_in = std::fs::File::open("/dev/tty")
|
||||
.map_err(|e| anyhow::anyhow!(
|
||||
"Не удалось открыть терминал ({e}). Запустите ostiary напрямую."
|
||||
))?;
|
||||
let mut out = tty.try_clone()?;
|
||||
let mut reader = BufReader::new(tty);
|
||||
let mut reader = BufReader::new(tty_in);
|
||||
let mut out = std::io::stdout();
|
||||
|
||||
writeln!(out)?;
|
||||
writeln!(out, " ╔══════════════════════════════════╗")?;
|
||||
|
||||
Reference in New Issue
Block a user