Updated dependencies (and tui-rs to 0.10.0).

This commit is contained in:
Antoine POPINEAU 2020-08-19 17:11:10 +02:00
parent 3fc0829b89
commit 6560f2b6c9
No known key found for this signature in database
GPG Key ID: A78AC64694F84063
6 changed files with 74 additions and 94 deletions

76
Cargo.lock generated
View File

@ -26,9 +26,9 @@ checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
[[package]]
name = "cc"
version = "1.0.55"
version = "1.0.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b1be3409f94d7bdceeb5f5fac551039d9b3f00e25da7a74fc4d33400a0d96368"
checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
[[package]]
name = "cfg-if"
@ -38,9 +38,9 @@ checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
[[package]]
name = "chrono"
version = "0.4.11"
version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
checksum = "942f72db697d8767c22d46a598e01f2d3b475501ea43d0db4f16d90259182d0b"
dependencies = [
"num-integer",
"num-traits",
@ -56,12 +56,6 @@ dependencies = [
"rand",
]
[[package]]
name = "either"
version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
[[package]]
name = "getopts"
version = "0.2.21"
@ -103,15 +97,6 @@ dependencies = [
"autocfg",
]
[[package]]
name = "itertools"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
dependencies = [
"either",
]
[[package]]
name = "itoa"
version = "0.4.6"
@ -120,21 +105,20 @@ checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
[[package]]
name = "libc"
version = "0.2.71"
version = "0.2.74"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
[[package]]
name = "nix"
version = "0.17.0"
version = "0.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
checksum = "83450fe6a6142ddd95fb064b746083fc4ef1705fe81f64a64e1d4b39f54a1055"
dependencies = [
"bitflags",
"cc",
"cfg-if",
"libc",
"void",
]
[[package]]
@ -180,9 +164,9 @@ checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
[[package]]
name = "proc-macro2"
version = "1.0.18"
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
dependencies = [
"unicode-xid",
]
@ -239,9 +223,9 @@ dependencies = [
[[package]]
name = "redox_syscall"
version = "0.1.56"
version = "0.1.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
[[package]]
name = "redox_termios"
@ -270,18 +254,18 @@ checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
[[package]]
name = "serde"
version = "1.0.114"
version = "1.0.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.114"
version = "1.0.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48"
dependencies = [
"proc-macro2",
"quote",
@ -290,9 +274,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.55"
version = "1.0.57"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec2c5d7e739bc07a3e73381a39d61fdb5f671c60c1df26a130690665803d8226"
checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
dependencies = [
"itoa",
"ryu",
@ -301,9 +285,9 @@ dependencies = [
[[package]]
name = "syn"
version = "1.0.33"
version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4"
dependencies = [
"proc-macro2",
"quote",
@ -324,9 +308,9 @@ dependencies = [
[[package]]
name = "textwrap"
version = "0.12.0"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e30fc9a1b93fe45a3811654d49ead7306cf8fb18aa7fe6bf630a1099111cd2d6"
checksum = "203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789"
dependencies = [
"unicode-width",
]
@ -363,14 +347,12 @@ dependencies = [
[[package]]
name = "tui"
version = "0.9.5"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9533d39bef0ae8f510e8a99d78702e68d1bbf0b98a78ec9740509d287010ae1e"
checksum = "a977b0bb2e2033a6fef950f218f13622c3c34e59754b704ce3492dedab1dfe95"
dependencies = [
"bitflags",
"cassowary",
"either",
"itertools",
"termion",
"unicode-segmentation",
"unicode-width",
@ -399,9 +381,9 @@ checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
[[package]]
name = "unicode-width"
version = "0.1.7"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
[[package]]
name = "unicode-xid"
@ -409,12 +391,6 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
[[package]]
name = "void"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
[[package]]
name = "wasi"
version = "0.9.0+wasi-snapshot-preview1"

View File

@ -9,8 +9,8 @@ build = "build.rs"
getopts = "0.2.21"
greetd_ipc = { version = "0.6.0", features = ["sync-codec"] }
termion = "1.5.5"
tui = "0.9.5"
nix = "0.17.0"
tui = "0.10.0"
nix = "0.18.0"
textwrap = "0.12.0"
chrono = "0.4.11"
zeroize = "1.1.0"

View File

@ -4,7 +4,8 @@ use termion::raw::RawTerminal;
use tui::{
backend::TermionBackend,
layout::{Constraint, Direction, Layout, Rect},
widgets::{Block, BorderType, Borders, Paragraph, Text},
text::Spans,
widgets::{Block, BorderType, Borders, Paragraph},
Frame,
};
@ -37,10 +38,10 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
let chunks = Layout::default().direction(Direction::Vertical).constraints(constraints.as_ref()).split(frame);
let cursor = chunks[0];
let command_label_text = [prompt_value(COMMAND)];
let command_label = Paragraph::new(command_label_text.iter());
let command_value_text = [Text::raw(&greeter.new_command)];
let command_value = Paragraph::new(command_value_text.iter());
let command_label_text = vec![prompt_value(COMMAND)];
let command_label = Paragraph::new(command_label_text);
let command_value_text = vec![Spans::from(greeter.new_command.clone())];
let command_value = Paragraph::new(command_value_text);
f.render_widget(command_label, chunks[0]);
f.render_widget(command_value, Rect::new(1 + chunks[0].x + COMMAND.len() as u16, chunks[0].y, get_input_width(greeter, COMMAND), 1));

View File

@ -14,7 +14,8 @@ use tui::{
backend::TermionBackend,
layout::{Alignment, Constraint, Direction, Layout},
style::{Modifier, Style},
widgets::{Paragraph, Text},
text::{Span, Spans},
widgets::Paragraph,
Terminal,
};
@ -49,8 +50,8 @@ pub fn draw(terminal: &mut Terminal<TermionBackend<RawTerminal<io::Stdout>>>, gr
.split(size);
if greeter.config().opt_present("time") {
let time_text = [Text::raw(get_time())];
let time = Paragraph::new(time_text.iter()).alignment(Alignment::Center);
let time_text = vec![Spans::from(get_time())];
let time = Paragraph::new(time_text).alignment(Alignment::Center);
f.render_widget(time, chunks[0]);
}
@ -61,7 +62,7 @@ pub fn draw(terminal: &mut Terminal<TermionBackend<RawTerminal<io::Stdout>>>, gr
.split(chunks[2]);
let command = greeter.command.clone().unwrap_or_else(|| "-".to_string());
let status_left_text = [
let status_left_text = vec![
status_label("ESC"),
status_value(EXIT),
status_label("F2"),
@ -71,13 +72,13 @@ pub fn draw(terminal: &mut Terminal<TermionBackend<RawTerminal<io::Stdout>>>, gr
status_label(COMMAND),
status_value(command),
];
let status_left = Paragraph::new(status_left_text.iter());
let status_left = Paragraph::new(status_left_text);
f.render_widget(status_left, status_chunks[0]);
if capslock_status() {
let status_right_text = [status_label(format!(" {} ", CAPS_LOCK))];
let status_right = Paragraph::new(status_right_text.iter()).alignment(Alignment::Right);
let status_right_text = vec![status_label(format!(" {} ", CAPS_LOCK))];
let status_right = Paragraph::new(status_right_text).alignment(Alignment::Right);
f.render_widget(status_right, status_chunks[1]);
}
@ -102,23 +103,23 @@ fn get_time() -> String {
Local::now().format("%b, %d %h %Y - %H:%M").to_string()
}
fn status_label<'s, S>(text: S) -> Text<'s>
fn status_label<'s, S>(text: S) -> Spans<'s>
where
S: Into<String>,
{
Text::styled(text.into(), Style::default().modifier(Modifier::REVERSED))
Spans::from(Span::styled(text.into(), Style::default().add_modifier(Modifier::REVERSED)))
}
fn status_value<'s, S>(text: S) -> Text<'s>
fn status_value<'s, S>(text: S) -> Spans<'s>
where
S: Into<String>,
{
Text::raw(format!(" {} ", text.into()))
Spans::from(format!(" {} ", text.into()))
}
fn prompt_value<'s, S>(text: S) -> Text<'s>
fn prompt_value<'s, S>(text: S) -> Spans<'s>
where
S: Into<String>,
{
Text::styled(text.into(), Style::default().modifier(Modifier::BOLD))
Spans::from(Span::styled(text.into(), Style::default().add_modifier(Modifier::BOLD)))
}

View File

@ -4,7 +4,8 @@ use termion::raw::RawTerminal;
use tui::{
backend::TermionBackend,
layout::{Alignment, Constraint, Direction, Layout, Rect},
widgets::{Block, BorderType, Borders, Paragraph, Text},
text::Spans,
widgets::{Block, BorderType, Borders, Paragraph},
Frame,
};
@ -33,8 +34,8 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
let container = Rect::new(x, y, width, height);
let frame = Rect::new(x + container_padding, y + container_padding, width - container_padding, height - container_padding);
let hostname = format!(" {} {} ", TITLE, get_hostname());
let block = Block::default().title(&hostname).borders(Borders::ALL).border_type(BorderType::Plain);
let hostname = Spans::from(format!(" {} {} ", TITLE, get_hostname()));
let block = Block::default().title(hostname).borders(Borders::ALL).border_type(BorderType::Plain);
f.render_widget(block, container);
@ -55,17 +56,17 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
let cursor = chunks[USERNAME_INDEX];
if let Some(greeting) = &greeting {
let greeting_text = [Text::raw(greeting.trim_end())];
let greeting_label = Paragraph::new(greeting_text.iter()).alignment(Alignment::Center);
let greeting_text = vec![Spans::from(greeting.trim_end())];
let greeting_label = Paragraph::new(greeting_text).alignment(Alignment::Center);
f.render_widget(greeting_label, chunks[GREETING_INDEX]);
}
let username_text = [prompt_value(USERNAME)];
let username_label = Paragraph::new(username_text.iter());
let username_text = vec![prompt_value(USERNAME)];
let username_label = Paragraph::new(username_text);
let username_value_text = [Text::raw(&greeter.username)];
let username_value = Paragraph::new(username_value_text.iter());
let username_value_text = vec![Spans::from(greeter.username.clone())];
let username_value = Paragraph::new(username_value_text);
match greeter.mode {
Mode::Username | Mode::Password => {
@ -75,8 +76,8 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
Rect::new(1 + chunks[USERNAME_INDEX].x + USERNAME.len() as u16, chunks[USERNAME_INDEX].y, get_input_width(greeter, USERNAME), 1),
);
let answer_text = if greeter.working { [Text::raw(WORKING)] } else { [prompt_value(&greeter.prompt)] };
let answer_label = Paragraph::new(answer_text.iter());
let answer_text = if greeter.working { vec![Spans::from(WORKING)] } else { vec![prompt_value(&greeter.prompt)] };
let answer_label = Paragraph::new(answer_text);
if greeter.mode == Mode::Password || greeter.previous_mode == Mode::Password {
f.render_widget(answer_label, chunks[ANSWER_INDEX]);
@ -88,8 +89,8 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
greeter.answer.clone()
};
let answer_value_text = [Text::raw(&value)];
let answer_value = Paragraph::new(answer_value_text.iter());
let answer_value_text = vec![Spans::from(value)];
let answer_value = Paragraph::new(answer_value_text);
f.render_widget(
answer_value,
@ -103,9 +104,9 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
}
}
if let Some(ref message) = message {
let message_text = [Text::raw(message)];
let message = Paragraph::new(message_text.iter());
if let Some(message) = message {
let message_text = vec![Spans::from(message)];
let message = Paragraph::new(message_text);
match greeter.mode {
Mode::Username => f.render_widget(message, chunks[ANSWER_INDEX]),

View File

@ -5,7 +5,8 @@ use tui::{
backend::TermionBackend,
layout::Rect,
style::{Modifier, Style},
widgets::{Block, BorderType, Borders, Paragraph, Text},
text::{Span, Spans},
widgets::{Block, BorderType, Borders, Paragraph},
Frame,
};
@ -24,15 +25,15 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
let container = Rect::new(x, y, width, height);
let title = format!(" {} ", CHANGE_SESSION);
let block = Block::default().title(&title).borders(Borders::ALL).border_type(BorderType::Plain);
let title = Spans::from(format!(" {} ", CHANGE_SESSION));
let block = Block::default().title(title).borders(Borders::ALL).border_type(BorderType::Plain);
for (index, (name, _)) in greeter.sessions.iter().enumerate() {
let name = format!("{:1$}", name, greeter.width() as usize - 4);
let frame = Rect::new(x + 2, y + 2 + index as u16, width, 1);
let option_text = [get_option(&greeter, name, index)];
let option = Paragraph::new(option_text.iter());
let option_text = vec![get_option(&greeter, name, index)];
let option = Paragraph::new(option_text);
f.render_widget(option, frame);
}
@ -42,13 +43,13 @@ pub fn draw(greeter: &mut Greeter, f: &mut Frame<TermionBackend<RawTerminal<io::
Ok((1, 1))
}
fn get_option<'g, S>(greeter: &Greeter, name: S, index: usize) -> Text<'g>
fn get_option<'g, S>(greeter: &Greeter, name: S, index: usize) -> Spans<'g>
where
S: Into<String>,
{
if greeter.selected_session == index {
Text::styled(name.into(), Style::default().modifier(Modifier::REVERSED))
Spans::from(Span::styled(name.into(), Style::default().add_modifier(Modifier::REVERSED)))
} else {
Text::raw(name.into())
Spans::from(name.into())
}
}