From 2ec79c0f952a49597dd0974ebfc24aea02ce63ae Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 27 Jul 2018 14:00:28 +0200 Subject: [PATCH] print_text_table: align numbers to the right side Signed-off-by: Dietmar Maurer --- src/PVE/CLIFormatter.pm | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/PVE/CLIFormatter.pm b/src/PVE/CLIFormatter.pm index 119bc06..d964b51 100644 --- a/src/PVE/CLIFormatter.pm +++ b/src/PVE/CLIFormatter.pm @@ -226,6 +226,8 @@ sub print_text_table { for (my $i = 0; $i < $column_count; $i++) { my $prop = $props_to_print->[$i]; my $propinfo = $returnprops->{$prop} // {}; + my $type = $propinfo->{type} // 'string'; + my $alignstr = ($type eq 'integer' || $type eq 'number') ? '' : '-'; my $title = $propinfo->{title} // $prop; my $cutoff = $propinfo->{print_width} // $propinfo->{maxLength}; @@ -248,48 +250,48 @@ sub print_text_table { if ($border) { if ($i == 0 && ($column_count == 1)) { if ($utf8) { - $formatstring .= "│ %-${cutoff}s │"; + $formatstring .= "│ %$alignstr${cutoff}s │"; $borderstring_t .= "┌─" . ('─' x $cutoff) . "─┐"; $borderstring_m .= "├─" . ('─' x $cutoff) . "─┤"; $borderstring_b .= "└─" . ('─' x $cutoff) . "─┘"; } else { - $formatstring .= "| %-${cutoff}s |"; + $formatstring .= "| %$alignstr${cutoff}s |"; $borderstring_m .= "+-" . ('-' x $cutoff) . "-+"; } } elsif ($i == 0) { if ($utf8) { - $formatstring .= "│ %-${cutoff}s "; + $formatstring .= "│ %$alignstr${cutoff}s "; $borderstring_t .= "┌─" . ('─' x $cutoff) . '─'; $borderstring_m .= "├─" . ('─' x $cutoff) . '─'; $borderstring_b .= "└─" . ('─' x $cutoff) . '─'; } else { - $formatstring .= "| %-${cutoff}s "; + $formatstring .= "| %$alignstr${cutoff}s "; $borderstring_m .= "+-" . ('-' x $cutoff) . '-'; } } elsif ($i == ($column_count - 1)) { if ($utf8) { - $formatstring .= "│ %-${cutoff}s │"; + $formatstring .= "│ %$alignstr${cutoff}s │"; $borderstring_t .= "┬─" . ('─' x $cutoff) . "─┐"; $borderstring_m .= "┼─" . ('─' x $cutoff) . "─┤"; $borderstring_b .= "┴─" . ('─' x $cutoff) . "─┘"; } else { - $formatstring .= "| %-${cutoff}s |"; + $formatstring .= "| %$alignstr${cutoff}s |"; $borderstring_m .= "+-" . ('-' x $cutoff) . "-+"; } } else { if ($utf8) { - $formatstring .= "│ %-${cutoff}s "; + $formatstring .= "│ %$alignstr${cutoff}s "; $borderstring_t .= "┬─" . ('─' x $cutoff) . '─'; $borderstring_m .= "┼─" . ('─' x $cutoff) . '─'; $borderstring_b .= "┴─" . ('─' x $cutoff) . '─'; } else { - $formatstring .= "| %-${cutoff}s "; + $formatstring .= "| %$alignstr${cutoff}s "; $borderstring_m .= "+-" . ('-' x $cutoff) . '-'; } } } else { # skip alignment and cutoff on last column - $formatstring .= ($i == ($column_count - 1)) ? "%s" : "%-${cutoff}s "; + $formatstring .= ($i == ($column_count - 1)) ? "%s" : "%$alignstr${cutoff}s "; } } -- 2.39.2