2 Commits

Author SHA1 Message Date
Uber Veng
a93f3ad9f6 Fix first startup on macOS 2026-05-29 12:58:15 +07:00
Uber Veng
b0407d6519 update install script 4 2026-05-29 12:49:58 +07:00
4 changed files with 9 additions and 11 deletions

2
Cargo.lock generated
View File

@@ -1203,7 +1203,7 @@ dependencies = [
[[package]] [[package]]
name = "ostiary" name = "ostiary"
version = "1.1.2" version = "1.1.3"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"base64", "base64",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "ostiary" name = "ostiary"
version = "1.1.2" version = "1.1.3"
edition = "2024" edition = "2024"
[dependencies] [dependencies]

View File

@@ -109,7 +109,7 @@ fi
echo "" echo ""
ok "Launching ${BINARY}..." ok "Launching ${BINARY}..."
if { true </dev/tty; } 2>/dev/null; then if { true </dev/tty; } 2>/dev/null; then
exec "$INSTALL_DIR/$BINARY" </dev/tty >/dev/tty 2>/dev/tty exec "$INSTALL_DIR/$BINARY"
else else
ok "Run: $BINARY" ok "Run: $BINARY"
fi fi

View File

@@ -172,17 +172,15 @@ async fn run_exec(
fn prompt_first_endpoint() -> Result<(String, String)> { fn prompt_first_endpoint() -> Result<(String, String)> {
use std::io::{BufRead, BufReader, Write}; use std::io::{BufRead, BufReader, Write};
// Open /dev/tty directly so input works even when launched via `curl | bash` // Open /dev/tty read-only for keyboard input so the wizard works even when
// (where stdin is the pipe carrying the script, not the keyboard). // stdin is a pipe (e.g. `curl | bash`). Writing goes through stdout so we
let tty = std::fs::OpenOptions::new() // don't touch the terminal's write-side state before crossterm takes over.
.read(true) let tty_in = std::fs::File::open("/dev/tty")
.write(true)
.open("/dev/tty")
.map_err(|e| anyhow::anyhow!( .map_err(|e| anyhow::anyhow!(
"Не удалось открыть терминал ({e}). Запустите ostiary напрямую." "Не удалось открыть терминал ({e}). Запустите ostiary напрямую."
))?; ))?;
let mut out = tty.try_clone()?; let mut reader = BufReader::new(tty_in);
let mut reader = BufReader::new(tty); let mut out = std::io::stdout();
writeln!(out)?; writeln!(out)?;
writeln!(out, " ╔══════════════════════════════════╗")?; writeln!(out, " ╔══════════════════════════════════╗")?;