Compare commits
2 Commits
installer-
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ac285715f | ||
|
|
22e6c1b1b2 |
4
installer/Cargo.lock
generated
4
installer/Cargo.lock
generated
@@ -176,6 +176,7 @@ dependencies = [
|
||||
"crossterm_winapi",
|
||||
"derive_more",
|
||||
"document-features",
|
||||
"filedescriptor",
|
||||
"mio",
|
||||
"parking_lot",
|
||||
"rustix",
|
||||
@@ -1408,10 +1409,11 @@ checksum = "b6f5e870be6c3b371b77fe0ee0bafb859fa4964b4404c27de1d380043c4dda20"
|
||||
|
||||
[[package]]
|
||||
name = "typoena-installer"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"base64",
|
||||
"crossterm",
|
||||
"ratatui",
|
||||
]
|
||||
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
[package]
|
||||
name = "typoena-installer"
|
||||
version = "0.1.0"
|
||||
version = "0.1.1"
|
||||
edition = "2024"
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.103"
|
||||
base64 = "0.22.1"
|
||||
ratatui = "0.30.2"
|
||||
# Force crossterm's poll(2)-based event reader. The default `mio` backend uses
|
||||
# kqueue on macOS, which cannot register `/dev/tty` (the controlling-terminal
|
||||
# device) — so a `curl … | sh` launch, where fd0 is /dev/tty rather than a pty
|
||||
# slave, fails with "Failed to initialize input reader". `use-dev-tty` polls.
|
||||
crossterm = { version = "0.29", features = ["use-dev-tty"] }
|
||||
|
||||
@@ -68,8 +68,8 @@ prompt macOS) · `remote`, `pat` ← typed (PAT never derived).
|
||||
|
||||
## Open items (not blocking the current slices)
|
||||
|
||||
- **Hosting** — where the CLI binary lives for the `curl | sh` download (Gitea
|
||||
release vs typoena.dev static asset). Dev runs via `cargo run` meanwhile.
|
||||
- ~~**Hosting**~~ — RESOLVED: public GitHub release on `jcalixte/typewriter`
|
||||
(`installer-v0.1.0`); `install.sh` pulls from `releases/latest/download`.
|
||||
- **Non-macOS** — Linux/Windows later; slice work is macOS-first.
|
||||
- **Clone target** — cloning ~hundreds of MB directly onto FAT via a reader;
|
||||
measure, and fall back to clone-to-temp-then-copy if it's too slow.
|
||||
@@ -92,4 +92,10 @@ prompt macOS) · `remote`, `pat` ← typed (PAT never derived).
|
||||
runs on a worker thread streaming progress. Verified: card detection on real
|
||||
hardware and clone + seed + conf via `--list-cards` / `--dry-run-sd`. Full
|
||||
interactive run + real write/eject await a blank card + a TTY.
|
||||
4. **install.sh + release/hosting** — checksums, polish.
|
||||
4. **install.sh + release/hosting** — DONE 2026-07-14. Universal macOS binary
|
||||
(lipo arm64+x86_64, stripped) published as a public GitHub release on
|
||||
`jcalixte/typewriter`, tag `installer-v0.1.0`, with a `.sha256` sidecar.
|
||||
`typoena.dev/install.sh` (in the [[typoena-site]] repo): Darwin guard → curl
|
||||
binary + sidecar from `releases/latest/download` → `shasum -c` verify → `exec
|
||||
… </dev/tty`. Verified end-to-end (mirror, live release, full typoena.dev
|
||||
chain). The interactive TUI run + real card write/eject still await a TTY.
|
||||
|
||||
@@ -152,6 +152,8 @@ fn gh_login() -> Option<String> {
|
||||
|
||||
fn active_wifi_ssid() -> Option<String> {
|
||||
// The Wi-Fi device on a Mac is usually en0; ask networksetup for its SSID.
|
||||
// Didn't work, but this command did for me:
|
||||
// networksetup -listpreferredwirelessnetworks en0 | grep -v '^Preferred networks on' | head -1 | xargs
|
||||
let out = Command::new("networksetup")
|
||||
.args(["-getairportnetwork", "en0"])
|
||||
.output()
|
||||
|
||||
Reference in New Issue
Block a user