mirror of
https://github.com/smxi/inxi.git
synced 2025-01-19 00:47:47 +00:00
program data refactors
This commit is contained in:
parent
93836f842b
commit
8992b353f5
91
pinxi
91
pinxi
|
@ -51,7 +51,7 @@ use POSIX qw(ceil uname strftime ttyname);
|
||||||
my $self_name='pinxi';
|
my $self_name='pinxi';
|
||||||
my $self_version='3.3.31';
|
my $self_version='3.3.31';
|
||||||
my $self_date='2023-12-16';
|
my $self_date='2023-12-16';
|
||||||
my $self_patch='29';
|
my $self_patch='30';
|
||||||
## END INXI INFO ##
|
## END INXI INFO ##
|
||||||
|
|
||||||
my ($b_pledge,@pledges);
|
my ($b_pledge,@pledges);
|
||||||
|
@ -78,7 +78,7 @@ my (%alerts,%build_prop,%client,%colors,,%cpuinfo_machine,%disks_bsd,%dboot,
|
||||||
%risc,%service_tool,%show,%sysctl,%system_files,%usb,%windows);
|
%risc,%service_tool,%show,%sysctl,%system_files,%usb,%windows);
|
||||||
|
|
||||||
## System Arrays
|
## System Arrays
|
||||||
my (@app,@cpuinfo,@dmi,@ifs,@ifs_bsd,@paths,@ps_aux,@ps_cmd,@ps_gui,
|
my (@cpuinfo,@dmi,@ifs,@ifs_bsd,@paths,@ps_aux,@ps_cmd,@ps_gui,
|
||||||
@sensors_exclude,@sensors_use,@uname);
|
@sensors_exclude,@sensors_use,@uname);
|
||||||
|
|
||||||
## Disk/Logical/Partition/RAID arrays
|
## Disk/Logical/Partition/RAID arrays
|
||||||
|
@ -5958,7 +5958,8 @@ sub get_client_name {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($b_log){
|
if ($b_log){
|
||||||
my $string = "Client: $client{'name'} :: version: $client{'version'} :: konvi: $client{'konvi'} :: PPID: $ppid";
|
my $string = "Client: $client{'name'} :: version: $client{'version'} ::";
|
||||||
|
$string .= " konvi: $client{'konvi'} :: PPID: $ppid";
|
||||||
main::log_data('data', $string);
|
main::log_data('data', $string);
|
||||||
}
|
}
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
|
@ -5966,7 +5967,7 @@ sub get_client_name {
|
||||||
|
|
||||||
sub get_client_version {
|
sub get_client_version {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
@app = ProgramData::values($client{'name'});
|
my @app = ProgramData::data($client{'name'});
|
||||||
my (@data,@working,$string);
|
my (@data,@working,$string);
|
||||||
if (@app){
|
if (@app){
|
||||||
$string = ($client{'name'} =~ /^gribble|limnoria|supybot$/) ? 'supybot' : $client{'name'};
|
$string = ($client{'name'} =~ /^gribble|limnoria|supybot$/) ? 'supybot' : $client{'name'};
|
||||||
|
@ -6041,9 +6042,8 @@ sub get_client_version {
|
||||||
# (KSirc sucks anyway ;)
|
# (KSirc sucks anyway ;)
|
||||||
foreach (@$cmdline){
|
foreach (@$cmdline){
|
||||||
if ($_ =~ /dsirc/){
|
if ($_ =~ /dsirc/){
|
||||||
$client{'version'} = ProgramData::version('ksirc','KSirc:',2,'-v',0,0);
|
|
||||||
$client{'name'} = 'ksirc';
|
$client{'name'} = 'ksirc';
|
||||||
$client{'name-print'} = 'KSirc';
|
($client{'name-print'},$client{'version'}) = ProgramData::full('ksirc');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$client{'console-irc'} = 1;
|
$client{'console-irc'} = 1;
|
||||||
|
@ -6109,6 +6109,7 @@ sub get_cmdline {
|
||||||
sub perl_python_client {
|
sub perl_python_client {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
return 1 if $client{'version'};
|
return 1 if $client{'version'};
|
||||||
|
my @app;
|
||||||
# this is a hack to try to show konversation if inxi is running but started via /cmd
|
# this is a hack to try to show konversation if inxi is running but started via /cmd
|
||||||
# OR via program shortcuts, both cases in fact now
|
# OR via program shortcuts, both cases in fact now
|
||||||
# main::print_line("konvi: " . scalar grep { $_ =~ /konversation/ } @ps_cmd);
|
# main::print_line("konvi: " . scalar grep { $_ =~ /konversation/ } @ps_cmd);
|
||||||
|
@ -6152,7 +6153,8 @@ sub perl_python_client {
|
||||||
$client{'name-print'} = "Unknown $client{'name'} client";
|
$client{'name-print'} = "Unknown $client{'name'} client";
|
||||||
}
|
}
|
||||||
if ($b_log){
|
if ($b_log){
|
||||||
my $string = "namep: $client{'name-print'} name: $client{'name'} version: $client{'version'}";
|
my $string = "namep: $client{'name-print'} name: $client{'name'} ";
|
||||||
|
$string .= " version: $client{'version'}";
|
||||||
main::log_data('data',$string);
|
main::log_data('data',$string);
|
||||||
}
|
}
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
|
@ -6185,7 +6187,7 @@ sub check_modern_konvi {
|
||||||
}
|
}
|
||||||
# print "$pid $konvi\n";
|
# print "$pid $konvi\n";
|
||||||
if ($konvi){
|
if ($konvi){
|
||||||
@app = ProgramData::values('konversation');
|
my @app = ProgramData::values('konversation');
|
||||||
$konvi_version = ProgramData::version($konvi,$app[0],$app[1],$app[2],$app[5],$app[6]);
|
$konvi_version = ProgramData::version($konvi,$app[0],$app[1],$app[2],$app[5],$app[6]);
|
||||||
$client{'console-irc'} = $app[4];
|
$client{'console-irc'} = $app[4];
|
||||||
$client{'konvi'} = 3;
|
$client{'konvi'} = 3;
|
||||||
|
@ -28283,7 +28285,7 @@ sub get_compiler_data {
|
||||||
(my $name,$compiler_version) = ProgramData::full($compiler,$program);
|
(my $name,$compiler_version) = ProgramData::full($compiler,$program);
|
||||||
}
|
}
|
||||||
if ($extra > 1){
|
if ($extra > 1){
|
||||||
# glob /usr/bin for gccs, strip out all non numeric values
|
# glob /usr/bin,/usr/local/bin for ccs, strip out all non numeric values
|
||||||
if (my @temp = globber("/usr/{local/,}bin/${compiler}{-,}[0-9]*")){
|
if (my @temp = globber("/usr/{local/,}bin/${compiler}{-,}[0-9]*")){
|
||||||
# usually like gcc-11 but sometimes gcc-11.2.0
|
# usually like gcc-11 but sometimes gcc-11.2.0
|
||||||
foreach (@temp){
|
foreach (@temp){
|
||||||
|
@ -28712,7 +28714,8 @@ sub get_kde_trinity_data {
|
||||||
$desktop->[0] = 'KDE Plasma';
|
$desktop->[0] = 'KDE Plasma';
|
||||||
}
|
}
|
||||||
if (!$desktop->[1]){
|
if (!$desktop->[1]){
|
||||||
$desktop->[1] = ($kde_session_version) ? $kde_session_version : main::message('unknown-desktop-version');
|
$desktop->[1] = ($kde_session_version) ?
|
||||||
|
$kde_session_version : main::message('unknown-desktop-version');
|
||||||
}
|
}
|
||||||
# print Data::Dumper::Dumper \@version_data;
|
# print Data::Dumper::Dumper \@version_data;
|
||||||
if ($extra > 1){
|
if ($extra > 1){
|
||||||
|
@ -28814,9 +28817,7 @@ sub get_env_xprop_gnome_based_data {
|
||||||
my %versions = ('mate-about' => '','mate-session' => '');
|
my %versions = ('mate-about' => '','mate-session' => '');
|
||||||
foreach my $key (keys %versions){
|
foreach my $key (keys %versions){
|
||||||
if ($program = main::check_program($key)){
|
if ($program = main::check_program($key)){
|
||||||
@data = ProgramData::full($key,$program,0);
|
($desktop->[0],$versions{$key}) = ProgramData::full($key,$program,0);
|
||||||
$desktop->[0] = $data[0];
|
|
||||||
$versions{$key} = $data[1];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# no consistent rule about which version is higher, so just compare them and take highest
|
# no consistent rule about which version is higher, so just compare them and take highest
|
||||||
|
@ -30702,9 +30703,8 @@ sub get_linux_distro {
|
||||||
}
|
}
|
||||||
elsif ($etc_issue){
|
elsif ($etc_issue){
|
||||||
if (-d '/etc/guix' && $lc_issue =~ /^this is the gnu system\./){
|
if (-d '/etc/guix' && $lc_issue =~ /^this is the gnu system\./){
|
||||||
$distro = 'Guix';
|
# No standard paths or files for os data, use pm version
|
||||||
# They didn't use any standard paths or files for os data, sigh, use pm version
|
($distro,my $version) = ProgramData::full('guix');
|
||||||
my $version = ProgramData::version('guix', '^guix', '4','--version',1);
|
|
||||||
$distro .= " $version" if $version;
|
$distro .= " $version" if $version;
|
||||||
$b_skip_issue = 1;
|
$b_skip_issue = 1;
|
||||||
}
|
}
|
||||||
|
@ -33933,6 +33933,7 @@ sub set_values {
|
||||||
'irssi-text' => ['irssi',2,'-v','Irssi',1,1,0,'',''],
|
'irssi-text' => ['irssi',2,'-v','Irssi',1,1,0,'',''],
|
||||||
'konversation' => ['konversation',2,'-v','Konversation',0,0,0,'',''],
|
'konversation' => ['konversation',2,'-v','Konversation',0,0,0,'',''],
|
||||||
'kopete' => ['Kopete',2,'-v','Kopete',0,0,0,'',''],
|
'kopete' => ['Kopete',2,'-v','Kopete',0,0,0,'',''],
|
||||||
|
'ksirc' => ['KSirc',2,'-v','KSirc',0,0,0,'',''],
|
||||||
'kvirc' => ['[0-9.]+',2,'-v','KVIrc',0,0,1,'',''], # special
|
'kvirc' => ['[0-9.]+',2,'-v','KVIrc',0,0,1,'',''], # special
|
||||||
'pidgin' => ['[0-9.]+',2,'-v','Pidgin',0,1,0,'',''],
|
'pidgin' => ['[0-9.]+',2,'-v','Pidgin',0,1,0,'',''],
|
||||||
'quassel' => ['',1,'-v','Quassel [M]',0,0,0,'',''], # special
|
'quassel' => ['',1,'-v','Quassel [M]',0,0,0,'',''], # special
|
||||||
|
@ -34273,6 +34274,8 @@ sub set_values {
|
||||||
'upstart' => ['upstart',3,'--version','Upstart',0,1,0,'',''],
|
'upstart' => ['upstart',3,'--version','Upstart',0,1,0,'',''],
|
||||||
## Tools: Miscellaneous ##
|
## Tools: Miscellaneous ##
|
||||||
'sudo' => ['^Sudo',3,'-V','Sudo',1,1,0,'',''], # sudo pre 1.7 does not have --version
|
'sudo' => ['^Sudo',3,'-V','Sudo',1,1,0,'',''], # sudo pre 1.7 does not have --version
|
||||||
|
## Tools: Package Managers ##
|
||||||
|
'guix' => ['^guix',4,'--version','Guix',0,1,0,'',''], # used for distro ID
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34850,7 +34853,7 @@ my $b_debug = 0; # disable all debugger output in case forget to comment out!
|
||||||
# fine, that's what it is.
|
# fine, that's what it is.
|
||||||
sub set {
|
sub set {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
my ($cmd,$parent,$pppid,$shell);
|
my (@app,$cmd,$parent,$pppid,$shell);
|
||||||
$loaded{'shell-data'} = 1;
|
$loaded{'shell-data'} = 1;
|
||||||
$cmd = "ps -wwp $ppid -o comm= 2>/dev/null";
|
$cmd = "ps -wwp $ppid -o comm= 2>/dev/null";
|
||||||
$shell = qx($cmd);
|
$shell = qx($cmd);
|
||||||
|
@ -36790,50 +36793,26 @@ sub info_item {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($extra > 0){
|
if ($extra > 0){
|
||||||
my ($clang,$clang_alt,$gcc,$gcc_alt,$path,$zigcc,$zigcc_alt);
|
my (%cc,$path);
|
||||||
my $clangs = main::get_compiler_data('clang');
|
foreach my $compiler (qw(clang gcc zigcc)){
|
||||||
if (@$clangs){
|
my $comps = main::get_compiler_data($compiler);
|
||||||
$clang = shift @$clangs;
|
if (@$comps){
|
||||||
if ($extra > 1 && @$clangs){
|
$cc{$compiler}->{'version'} = shift @$comps;
|
||||||
$clang_alt = join('/', @$clangs);
|
if ($extra > 1 && @$comps){
|
||||||
|
$cc{$compiler}->{'alt'} = join('/', @$comps);
|
||||||
}
|
}
|
||||||
$clang ||= 'N/A'; # should not be needed after fix but leave in case undef
|
$cc{$compiler}->{'version'} ||= 'N/A'; # should not be needed after fix but leave in case undef
|
||||||
}
|
|
||||||
my $gccs = main::get_compiler_data('gcc');
|
|
||||||
if (@$gccs){
|
|
||||||
$gcc = shift @$gccs;
|
|
||||||
if ($extra > 1 && @$gccs){
|
|
||||||
$gcc_alt = join('/', @$gccs);
|
|
||||||
}
|
|
||||||
$gcc ||= 'N/A'; # should not be needed after fix but leave in case undef
|
|
||||||
}
|
|
||||||
my $zigccs = main::get_compiler_data('zigcc');
|
|
||||||
if (@$zigccs){
|
|
||||||
$zigcc = shift @$zigccs;
|
|
||||||
if ($extra > 1 && @$zigccs){
|
|
||||||
$zigcc_alt = join('/', @$zigccs);
|
|
||||||
}
|
|
||||||
$zigcc ||= 'N/A'; # should not be needed after fix but leave in case undef
|
|
||||||
}
|
|
||||||
my $compiler = ($gcc || $clang || $zigcc) ? '': 'N/A';
|
|
||||||
$data->{$data_name}[$index]{main::key($num++,1,1,'Compilers')} = $compiler;
|
|
||||||
if ($clang){
|
|
||||||
$data->{$data_name}[$index]{main::key($num++,0,2,'clang')} = $clang;
|
|
||||||
if ($extra > 1 && $clang_alt){
|
|
||||||
$data->{$data_name}[$index]{main::key($num++,0,3,'alt')} = $clang_alt;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($gcc){
|
my $cc_value = ($cc{'clang'} || $cc{'gcc'} || $cc{'zigcc'}) ? '': 'N/A';
|
||||||
$data->{$data_name}[$index]{main::key($num++,1,2,'gcc')} = $gcc;
|
$data->{$data_name}[$index]{main::key($num++,1,1,'Compilers')} = $cc_value;
|
||||||
if ($extra > 1 && $gcc_alt){
|
foreach my $compiler (qw(clang gcc zigcc)){
|
||||||
$data->{$data_name}[$index]{main::key($num++,0,3,'alt')} = $gcc_alt;
|
if ($cc{$compiler}){
|
||||||
|
$data->{$data_name}[$index]{main::key($num++,0,2,$compiler)} = $cc{$compiler}->{'version'};
|
||||||
|
if ($extra > 1 && $cc{$compiler}->{'alt'}){
|
||||||
|
$data->{$data_name}[$index]{main::key($num++,0,3,'alt')} = $cc{$compiler}->{'alt'};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($zigcc){
|
|
||||||
$data->{$data_name}[$index]{main::key($num++,1,2,'zigcc')} = $zigcc;
|
|
||||||
if ($extra > 1 && $zigcc_alt){
|
|
||||||
$data->{$data_name}[$index]{main::key($num++,0,3,'alt')} = $zigcc_alt;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# $index++ if $extra > 1 && !$loaded{'shell-data'};
|
# $index++ if $extra > 1 && !$loaded{'shell-data'};
|
||||||
|
|
Loading…
Reference in a new issue