mirror of
https://github.com/smxi/inxi.git
synced 2025-01-31 18:12:21 +00:00
New version. NBD network block device fixes
Two enhancements/bug fixes: 1. inxi did not have support for network block devices /dev/nbd0 type syntax in disks. 2. this caused a slight failure in lsblk output, so I switched to using lsblk -P to force paired key values, which are then put into an array of hashes. These both appeared on an ARM server system, but surprisingly, there were no ARM specific issues at all on that system. Both issues/enhancements tested and working fine.
This commit is contained in:
parent
2b9562c46d
commit
174078bcce
42
inxi
42
inxi
|
@ -31,7 +31,7 @@ use POSIX qw(uname strftime ttyname);
|
||||||
|
|
||||||
## INXI INFO ##
|
## INXI INFO ##
|
||||||
my $self_name='inxi';
|
my $self_name='inxi';
|
||||||
my $self_version='3.0.02';
|
my $self_version='3.0.03';
|
||||||
my $self_date='2018-04-12';
|
my $self_date='2018-04-12';
|
||||||
my $self_patch='00';
|
my $self_patch='00';
|
||||||
## END INXI INFO ##
|
## END INXI INFO ##
|
||||||
|
@ -7169,7 +7169,7 @@ sub proc_data {
|
||||||
foreach (@proc_partitions){
|
foreach (@proc_partitions){
|
||||||
next if (/^\s*$/);
|
next if (/^\s*$/);
|
||||||
my @row = split /\s+/, $_;
|
my @row = split /\s+/, $_;
|
||||||
if ( $row[-1] =~ /^([hsv]d[a-z]+|(ada|mmcblk|nvme[0-9]+n)[0-9]+)$/) {
|
if ( $row[-1] =~ /^([hsv]d[a-z]+|(ada|mmcblk|n[b]?d|nvme[0-9]+n)[0-9]+)$/) {
|
||||||
$drive_size = $row[2];
|
$drive_size = $row[2];
|
||||||
$b_hdx = 1 if $row[-1] =~ /^hd[a-z]/;
|
$b_hdx = 1 if $row[-1] =~ /^hd[a-z]/;
|
||||||
@data = ({
|
@data = ({
|
||||||
|
@ -7192,9 +7192,10 @@ sub proc_data {
|
||||||
# $size += $row[2];
|
# $size += $row[2];
|
||||||
# }
|
# }
|
||||||
# special case from this data: 8 0 156290904 sda
|
# special case from this data: 8 0 156290904 sda
|
||||||
|
# 43 0 48828124 nbd0
|
||||||
# note: known starters: vm: 252/253/254; grsec: 202; nvme: 259
|
# note: known starters: vm: 252/253/254; grsec: 202; nvme: 259
|
||||||
if ( $row[0] =~ /^(3|8|22|33|202|252|253|254|259)$/ &&
|
if ( $row[0] =~ /^(3|8|22|33|43|202|252|253|254|259)$/ &&
|
||||||
$row[-1] =~ /(nvme[0-9]+n[0-9]+|[hsv]d[a-z]+)$/ &&
|
$row[-1] =~ /(n[b]?d[0-9]+|nvme[0-9]+n[0-9]+|[hsv]d[a-z]+)$/ &&
|
||||||
( $row[1] % 16 == 0 || $row[1] % 16 == 8 ) ) {
|
( $row[1] % 16 == 0 || $row[1] % 16 == 8 ) ) {
|
||||||
$size += $row[2];
|
$size += $row[2];
|
||||||
}
|
}
|
||||||
|
@ -9999,9 +10000,24 @@ sub get_bsd_label_uuid {
|
||||||
sub set_lsblk {
|
sub set_lsblk {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
$b_lsblk = 1;
|
$b_lsblk = 1;
|
||||||
|
my (@temp,@working);
|
||||||
if (my $program = main::check_program('lsblk')){
|
if (my $program = main::check_program('lsblk')){
|
||||||
@lsblk = main::grabber("$program -r --output NAME,TYPE,RM,FSTYPE,SIZE 2>/dev/null");
|
@working = main::grabber("$program -P --output NAME,TYPE,RM,FSTYPE,SIZE 2>/dev/null");
|
||||||
|
foreach (@working){
|
||||||
|
my ($name,$type,$rm,$fstype,$size) = ('','','','','');
|
||||||
|
if (/NAME="([^"]*)"\s+TYPE="([^"]*)"\s+RM="([^"]*)"\s+FSTYPE="([^"]*)"\s+SIZE="([^"]*)"/){
|
||||||
|
my @temp = ({
|
||||||
|
'name' => $1,
|
||||||
|
'type' => $2,
|
||||||
|
'rm' => $3,
|
||||||
|
'fs' => $4,
|
||||||
|
'size' => $5
|
||||||
|
});
|
||||||
|
@lsblk = (@lsblk,@temp);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
# print Data::Dumper::Dumper \@lsblk;
|
||||||
main::log_data('dump','@lsblk',\@lsblk) if $b_log;
|
main::log_data('dump','@lsblk',\@lsblk) if $b_log;
|
||||||
shift @lsblk if @lsblk; # get rid of row headers
|
shift @lsblk if @lsblk; # get rid of row headers
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
|
@ -10010,13 +10026,13 @@ sub check_lsblk {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
my ($name,$b_size) = @_;
|
my ($name,$b_size) = @_;
|
||||||
my (%part,@row);
|
my (%part,@row);
|
||||||
foreach (@lsblk){
|
foreach my $ref (@lsblk){
|
||||||
@row = split /\s+/, $_;
|
my %row = %$ref;
|
||||||
next if ! $row[1];
|
next if ! $row{'name'};
|
||||||
if ($name eq $row[0]){
|
if ($name eq $row{'name'}){
|
||||||
$part{'fs'} = $row[3];
|
$part{'fs'} = $row{'fs'};
|
||||||
$part{'size'} = $row[-1] / 1024 if $b_size && $row[-1];
|
$part{'size'} = $row{'size'}/ 1024 if $b_size && $row{'size'};
|
||||||
$part{'rm'} = $row[2] if defined $row[2];
|
$part{'rm'} = $row{'rm'} if $row{'rm'};
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15006,7 +15022,7 @@ sub get_tty_console_irc {
|
||||||
sub get_tty_number {
|
sub get_tty_number {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
my $tty = POSIX::ttyname(1);
|
my $tty = POSIX::ttyname(1);
|
||||||
#variants: /dev/pts/1 /dev/tty1 /dev/pts/5 /dev/ttyp2 /dev/pts/1
|
#variants: /dev/pts/1 /dev/tty1 /dev/ttyp2 /dev/ttyra [hex number a]
|
||||||
$tty =~ s/.*\/[^0-9]*//g if defined $tty;
|
$tty =~ s/.*\/[^0-9]*//g if defined $tty;
|
||||||
$tty = '' if ! defined $tty;
|
$tty = '' if ! defined $tty;
|
||||||
log_data('data',"tty:$tty") if $b_log;
|
log_data('data',"tty:$tty") if $b_log;
|
||||||
|
|
|
@ -1,3 +1,26 @@
|
||||||
|
=====================================================================================
|
||||||
|
Version: 3.0.03
|
||||||
|
Patch Version: 00
|
||||||
|
Script Date: 2018-04-12
|
||||||
|
-----------------------------------
|
||||||
|
Changes:
|
||||||
|
-----------------------------------
|
||||||
|
New version. NBD network block device fixes
|
||||||
|
|
||||||
|
Two enhancements/bug fixes:
|
||||||
|
1. inxi did not have support for network block devices /dev/nbd0 type syntax in
|
||||||
|
disks.
|
||||||
|
2. this caused a slight failure in lsblk output, so I switched to using lsblk -P
|
||||||
|
to force paired key values, which are then put into an array of hashes.
|
||||||
|
|
||||||
|
These both appeared on an ARM server system, but surprisingly, there were no ARM
|
||||||
|
specific issues at all on that system.
|
||||||
|
|
||||||
|
Both issues/enhancements tested and working fine.
|
||||||
|
|
||||||
|
-----------------------------------
|
||||||
|
-- Harald Hope - Thu, 12 Apr 2018 19:22:27 -0700
|
||||||
|
|
||||||
=====================================================================================
|
=====================================================================================
|
||||||
Version: 3.0.02
|
Version: 3.0.02
|
||||||
Patch Version: 00
|
Patch Version: 00
|
||||||
|
|
Loading…
Reference in a new issue