[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