[pve-devel] [RFC PATCH common] cli: prettify tables even more
Dietmar Maurer
dietmar at proxmox.com
Wed Aug 21 21:35:56 CEST 2019
Are your sure common terminals support those characters?
They did not when I tested ...
> On 21 August 2019 14:33 Wolfgang Bumiller <w.bumiller at proxmox.com> wrote:
>
>
> Separate the header with a double line.
>
> Signed-off-by: Wolfgang Bumiller <w.bumiller at proxmox.com>
> ---
> src/PVE/CLIFormatter.pm | 18 +++++++++++++++++-
> 1 file changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/src/PVE/CLIFormatter.pm b/src/PVE/CLIFormatter.pm
> index 84dbed1..0e9cbe6 100644
> --- a/src/PVE/CLIFormatter.pm
> +++ b/src/PVE/CLIFormatter.pm
> @@ -186,6 +186,7 @@ sub print_text_table {
> my $borderstring_m = '';
> my $borderstring_b = '';
> my $borderstring_t = '';
> + my $borderstring_h = '';
> my $formatstring = '';
>
> my $column_count = scalar(@$props_to_print);
> @@ -255,41 +256,49 @@ sub print_text_table {
> if ($utf8) {
> $formatstring .= "│ %$alignstr${cutoff}s │";
> $borderstring_t .= "┌─" . ('─' x $cutoff) . "─┐";
> + $borderstring_h .= "╞═" . ('═' x $cutoff) . '═╡';
> $borderstring_m .= "├─" . ('─' x $cutoff) . "─┤";
> $borderstring_b .= "└─" . ('─' x $cutoff) . "─┘";
> } else {
> $formatstring .= "| %$alignstr${cutoff}s |";
> $borderstring_m .= "+-" . ('-' x $cutoff) . "-+";
> + $borderstring_h .= "+=" . ('=' x $cutoff) . '=';
> }
> } elsif ($i == 0) {
> if ($utf8) {
> $formatstring .= "│ %$alignstr${cutoff}s ";
> $borderstring_t .= "┌─" . ('─' x $cutoff) . '─';
> + $borderstring_h .= "╞═" . ('═' x $cutoff) . '═';
> $borderstring_m .= "├─" . ('─' x $cutoff) . '─';
> $borderstring_b .= "└─" . ('─' x $cutoff) . '─';
> } else {
> $formatstring .= "| %$alignstr${cutoff}s ";
> $borderstring_m .= "+-" . ('-' x $cutoff) . '-';
> + $borderstring_h .= "+=" . ('=' x $cutoff) . '=';
> }
> } elsif ($i == ($column_count - 1)) {
> if ($utf8) {
> $formatstring .= "│ %$alignstr${cutoff}s │";
> $borderstring_t .= "┬─" . ('─' x $cutoff) . "─┐";
> + $borderstring_h .= "╪═" . ('═' x $cutoff) . '═╡';
> $borderstring_m .= "┼─" . ('─' x $cutoff) . "─┤";
> $borderstring_b .= "┴─" . ('─' x $cutoff) . "─┘";
> } else {
> $formatstring .= "| %$alignstr${cutoff}s |";
> $borderstring_m .= "+-" . ('-' x $cutoff) . "-+";
> + $borderstring_h .= "+=" . ('=' x $cutoff) . "=+";
> }
> } else {
> if ($utf8) {
> $formatstring .= "│ %$alignstr${cutoff}s ";
> $borderstring_t .= "┬─" . ('─' x $cutoff) . '─';
> + $borderstring_h .= "╪═" . ('═' x $cutoff) . '═';
> $borderstring_m .= "┼─" . ('─' x $cutoff) . '─';
> $borderstring_b .= "┴─" . ('─' x $cutoff) . '─';
> } else {
> $formatstring .= "| %$alignstr${cutoff}s ";
> $borderstring_m .= "+-" . ('-' x $cutoff) . '-';
> + $borderstring_h .= "+=" . ('=' x $cutoff) . '=';
> }
> }
> } else {
> @@ -313,15 +322,22 @@ sub print_text_table {
>
> $writeln->($borderstring_t) if $border;
>
> + my $borderstring_sep;
> if ($header) {
> my $text = sprintf $formatstring, map { $colopts->{$_}->{title} } @$props_to_print;
> $writeln->($text);
> + $borderstring_sep = $borderstring_h;
> + } else {
> + $borderstring_sep = $borderstring_m;
> }
>
> for (my $i = 0; $i < scalar(@$tabledata); $i++) {
> my $coldata = $tabledata->[$i];
>
> - $writeln->($borderstring_m) if $border && ($i != 0 || $header);
> + if ($border && ($i != 0 || $header)) {
> + $writeln->($borderstring_sep);
> + $borderstring_sep = $borderstring_m;
> + }
>
> for (my $i = 0; $i < $coldata->{height}; $i++) {
>
> --
> 2.20.1
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list