chore(cli): remove now-dead prompt/prompt_optional helpers
A3 routed personal `add` through the shared item_build builders, which use prompt_secret / resolve_secret_*; the generic single-line prompt() and prompt_optional() lost their last callers. read_required_line / read_optional_line stay (used by prompt_or_flag*).
This commit is contained in:
@@ -1,13 +1,12 @@
|
|||||||
//! Interactive prompt helpers for the CLI.
|
//! Interactive prompt helpers for the CLI.
|
||||||
//!
|
//!
|
||||||
//! The `prompt`/`prompt_optional`/`prompt_secret` family reads from stdin /
|
//! `prompt_secret` reads a masked secret from the TTY (honouring
|
||||||
//! the TTY; the `prompt_keep`/`prompt_keep_opt`/`prompt_yesno` variants are
|
//! `RELICARIO_TEST_ITEM_SECRET` so integration tests without a TTY can inject
|
||||||
|
//! secrets); the `prompt_keep`/`prompt_keep_opt`/`prompt_yesno` variants are
|
||||||
//! used by the edit handlers to keep current values when the user hits enter
|
//! used by the edit handlers to keep current values when the user hits enter
|
||||||
//! at a blank prompt. `prompt_secret` honours `RELICARIO_TEST_ITEM_SECRET`
|
//! at a blank prompt. `prompt_or_flag` and `prompt_or_flag_optional` thread a
|
||||||
//! so integration tests (which don't have a TTY) can inject secrets.
|
//! CLI-flag value through the same path so command handlers can use one call
|
||||||
//! `prompt_or_flag` and `prompt_or_flag_optional` thread a CLI-flag value
|
//! site whether the value came from the command line or an interactive prompt.
|
||||||
//! through the same path so command handlers can use one call site whether
|
|
||||||
//! the value came from the command line or from an interactive prompt.
|
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use std::io::BufRead;
|
use std::io::BufRead;
|
||||||
@@ -41,18 +40,6 @@ fn read_optional_line<R: BufRead>(reader: &mut R, label: &str) -> Result<Option<
|
|||||||
Ok(if trimmed.is_empty() { None } else { Some(trimmed) })
|
Ok(if trimmed.is_empty() { None } else { Some(trimmed) })
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn prompt(label: &str) -> Result<String> {
|
|
||||||
let stdin = std::io::stdin();
|
|
||||||
let mut reader = std::io::BufReader::new(stdin.lock());
|
|
||||||
read_required_line(&mut reader, label)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) fn prompt_optional(label: &str) -> Result<Option<String>> {
|
|
||||||
let stdin = std::io::stdin();
|
|
||||||
let mut reader = std::io::BufReader::new(stdin.lock());
|
|
||||||
read_optional_line(&mut reader, label)
|
|
||||||
}
|
|
||||||
|
|
||||||
pub(crate) fn prompt_keep(label: &str, current: &str) -> Result<Option<String>> {
|
pub(crate) fn prompt_keep(label: &str, current: &str) -> Result<Option<String>> {
|
||||||
eprint!("{label} [{current}]: ");
|
eprint!("{label} [{current}]: ");
|
||||||
std::io::Write::flush(&mut std::io::stderr())?;
|
std::io::Write::flush(&mut std::io::stderr())?;
|
||||||
|
|||||||
Reference in New Issue
Block a user