add -w, --wrap to cli and config file

pull/21/head
chris west 4 years ago
parent e28a5469a4
commit c2c5e1c086

@ -50,6 +50,7 @@ the gophersphere.
-o, --tor Use local Tor proxy to open all pages
-S, -O Disable TLS or Tor
-w, --wrap COLUMN Wrap long lines in "text" views at COLUMN.
-m, --media PROGRAM Use to open media files. Default: mpv
-M, --no-media Just download media files, don't download

@ -72,6 +72,12 @@ Tor default of 127.0.0.1:9050.
Disable Tor.
.P
.RE
\fB-w\fR, \fB--wrap\fR \fICOLUMN\fR
.RS 4
Wrap long lines in Gopher "text" views at \fICOLUMN\fR.
Default: 0 (off)
.P
.RE
\fB-m\fR, \fB--media\fR \fIPATH\fR
.RS 4
Use program at \fIPATH\fR to open media files (movies and sounds).

@ -49,6 +49,10 @@ If no URL is given, however, *phetch* will launch and open its default
*-O*, *--no-tor*
Disable Tor.
*-w*, *--wrap* _COLUMN_
Wrap long lines in Gopher "text" views at _COLUMN_.
Default: 0 (off)
*-m*, *--media* _PATH_
Use program at _PATH_ to open media files (movies and sounds).
Default: mpv

@ -163,6 +163,17 @@ pub fn parse<T: AsRef<str>>(args: &[T]) -> Result<Config, ArgError> {
set_notor = true;
cfg.tor = false;
}
"-w" | "--wrap" | "-wrap" => {
if let Some(column) = iter.next() {
if let Ok(col) = column.as_ref().parse() {
cfg.wrap = col;
} else {
return Err(ArgError::new("--wrap expects a COLUMN arg"));
}
} else {
return Err(ArgError::new("--wrap expects a COLUMN arg"));
}
}
"-m" | "--media" | "-media" => {
if set_nomedia {
return Err(ArgError::new("can't set both --media and --no-media"));

@ -72,6 +72,8 @@ pub struct Config {
pub encoding: Encoding,
/// UI mode. Can't be set in conf file.
pub mode: ui::Mode,
/// Column to wrap lines. 0 = off
pub wrap: usize,
}
impl Default for Config {
@ -85,6 +87,7 @@ impl Default for Config {
media: Some(DEFAULT_MEDIA_PLAYER.into()),
encoding: Encoding::default(),
mode: ui::Mode::default(),
wrap: 0,
}
}
}
@ -151,6 +154,16 @@ fn parse(text: &str) -> Result<Config> {
"tls" => cfg.tls = to_bool(val)?,
"tor" => cfg.tor = to_bool(val)?,
"wide" => cfg.wide = to_bool(val)?,
"wrap" => {
if let Ok(num) = val.parse() {
cfg.wrap = num;
} else {
return Err(error!(
"`wrap` expects a number value on line {}: {}",
linenum, val
));
}
}
"media" => {
cfg.media = match val.to_lowercase().as_ref() {
"false" | "none" => None,

@ -77,6 +77,7 @@ Options:
-o, --tor Use local Tor proxy to open all pages
-S, -O Disable TLS or Tor
-w, --wrap COLUMN Wrap long lines in \"text\" views at COLUMN.
-m, --media PROGRAM Use to open media files. Default: mpv
-M, --no-media Just download media files, don't download

Loading…
Cancel
Save