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 -o, --tor Use local Tor proxy to open all pages
-S, -O Disable TLS or Tor -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, --media PROGRAM Use to open media files. Default: mpv
-M, --no-media Just download media files, don't download -M, --no-media Just download media files, don't download

@ -72,6 +72,12 @@ Tor default of 127.0.0.1:9050.
Disable Tor. Disable Tor.
.P .P
.RE .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 \fB-m\fR, \fB--media\fR \fIPATH\fR
.RS 4 .RS 4
Use program at \fIPATH\fR to open media files (movies and sounds). 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* *-O*, *--no-tor*
Disable Tor. Disable Tor.
*-w*, *--wrap* _COLUMN_
Wrap long lines in Gopher "text" views at _COLUMN_.
Default: 0 (off)
*-m*, *--media* _PATH_ *-m*, *--media* _PATH_
Use program at _PATH_ to open media files (movies and sounds). Use program at _PATH_ to open media files (movies and sounds).
Default: mpv Default: mpv

@ -163,6 +163,17 @@ pub fn parse<T: AsRef<str>>(args: &[T]) -> Result<Config, ArgError> {
set_notor = true; set_notor = true;
cfg.tor = false; 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" => { "-m" | "--media" | "-media" => {
if set_nomedia { if set_nomedia {
return Err(ArgError::new("can't set both --media and --no-media")); return Err(ArgError::new("can't set both --media and --no-media"));

@ -72,6 +72,8 @@ pub struct Config {
pub encoding: Encoding, pub encoding: Encoding,
/// UI mode. Can't be set in conf file. /// UI mode. Can't be set in conf file.
pub mode: ui::Mode, pub mode: ui::Mode,
/// Column to wrap lines. 0 = off
pub wrap: usize,
} }
impl Default for Config { impl Default for Config {
@ -85,6 +87,7 @@ impl Default for Config {
media: Some(DEFAULT_MEDIA_PLAYER.into()), media: Some(DEFAULT_MEDIA_PLAYER.into()),
encoding: Encoding::default(), encoding: Encoding::default(),
mode: ui::Mode::default(), mode: ui::Mode::default(),
wrap: 0,
} }
} }
} }
@ -151,6 +154,16 @@ fn parse(text: &str) -> Result<Config> {
"tls" => cfg.tls = to_bool(val)?, "tls" => cfg.tls = to_bool(val)?,
"tor" => cfg.tor = to_bool(val)?, "tor" => cfg.tor = to_bool(val)?,
"wide" => cfg.wide = 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" => { "media" => {
cfg.media = match val.to_lowercase().as_ref() { cfg.media = match val.to_lowercase().as_ref() {
"false" | "none" => None, "false" | "none" => None,

@ -77,6 +77,7 @@ Options:
-o, --tor Use local Tor proxy to open all pages -o, --tor Use local Tor proxy to open all pages
-S, -O Disable TLS or Tor -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, --media PROGRAM Use to open media files. Default: mpv
-M, --no-media Just download media files, don't download -M, --no-media Just download media files, don't download

Loading…
Cancel
Save