1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
use cli_utils::display::markdown::Markdown;
use render_system_macros::result_renderer;
use rust_i18n::t;
use crate::{
cmds::out::version::JVVersionOutput,
r_println,
systems::{cmd::errors::CmdRenderError, render::renderer::JVRenderResult},
};
#[result_renderer(JVVersionRenderer)]
pub async fn render(data: &JVVersionOutput) -> Result<JVRenderResult, CmdRenderError> {
let mut r = JVRenderResult::default();
if data.show_banner {
draw_banner(&mut r, data)
} else {
draw_version(&mut r, data);
}
if data.show_compile_info {
draw_compile_infos(&mut r, data);
}
Ok(r)
}
fn draw_banner(r: &mut JVRenderResult, data: &JVVersionOutput) {
let banner_str = t!(
"banner",
banner_line_1 = t!("version.banner_title_line").trim(),
banner_line_2 = t!(
"version.banner_cmd_version",
cli_version = data.compile_info.cli_version,
build_time = data.compile_info.date
)
.trim(),
banner_line_3 = t!(
"version.banner_core_version",
core_version = data.compile_info_core.vcs_version
)
.trim()
);
let trimmed_banner_str = banner_str
.trim_start_matches("_banner_begin")
.trim_matches('\n');
r_println!(r, "{}", trimmed_banner_str.to_string().markdown())
}
fn draw_version(r: &mut JVRenderResult, data: &JVVersionOutput) {
if data.show_compile_info {
r_println!(
r,
"{}",
t!(
"version.no_banner_output_with_compile_info",
version = data.compile_info.cli_version
)
.trim()
)
} else {
r_println!(
r,
"{}",
t!(
"version.no_banner_output",
version = data.compile_info.cli_version
)
.trim()
)
}
}
fn draw_compile_infos(r: &mut JVRenderResult, data: &JVVersionOutput) {
r_println!(
r,
"\n{}",
t!(
"version.compile_info.info",
build_time = data.compile_info.date,
target = data.compile_info.target,
platform = data.compile_info.platform,
toolchain = data.compile_info.toolchain,
core_branch = data.compile_info_core.build_branch,
cli_branch = data.compile_info.build_branch,
core_commit = &data.compile_info_core.build_commit[..7],
cli_commit = &data.compile_info.build_commit[..7]
)
.to_string()
.markdown()
);
}
|