mirror of
https://github.com/smxi/inxi.git
synced 2025-01-19 00:47:47 +00:00
init, tinyx, kernel compiler, many more
This commit is contained in:
parent
357551da68
commit
d305ab6767
190
pinxi
190
pinxi
|
@ -50,8 +50,8 @@ use POSIX qw(ceil uname strftime ttyname);
|
||||||
## INXI INFO ##
|
## INXI INFO ##
|
||||||
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-06';
|
my $self_date='2023-12-09';
|
||||||
my $self_patch='22';
|
my $self_patch='23';
|
||||||
## END INXI INFO ##
|
## END INXI INFO ##
|
||||||
|
|
||||||
my ($b_pledge,@pledges);
|
my ($b_pledge,@pledges);
|
||||||
|
@ -103,7 +103,7 @@ if (eval {require Time::HiRes}){
|
||||||
@t0 = eval 'Time::HiRes::gettimeofday()' if $b_hires; # let's start it right away
|
@t0 = eval 'Time::HiRes::gettimeofday()' if $b_hires; # let's start it right away
|
||||||
|
|
||||||
## Booleans [busybox_ps not used actively]
|
## Booleans [busybox_ps not used actively]
|
||||||
my ($b_admin,$b_android,$b_busybox_ps,$b_display,$b_irc,$b_root);
|
my ($b_admin,$b_android,$b_display,$b_irc,$b_root);
|
||||||
|
|
||||||
## System
|
## System
|
||||||
my ($bsd_type,$device_vm,$language,$os,$pci_tool) = ('','','','','');
|
my ($bsd_type,$device_vm,$language,$os,$pci_tool) = ('','','','','');
|
||||||
|
@ -5864,7 +5864,7 @@ sub show_options {
|
||||||
['1', '-r', '--repos', "Distro repository data. Supported repo types: APK,
|
['1', '-r', '--repos', "Distro repository data. Supported repo types: APK,
|
||||||
APT, CARDS, EOPKG, NETPKG, NIX, PACMAN, PACMAN-G2, PISI, PKG (BSDs), PORTAGE,
|
APT, CARDS, EOPKG, NETPKG, NIX, PACMAN, PACMAN-G2, PISI, PKG (BSDs), PORTAGE,
|
||||||
PORTS (BSDs), SBOPKG, SBOUI, SCRATCHPKG, SLACKPKG, SLAPT_GET, SLPKG, TCE,
|
PORTS (BSDs), SBOPKG, SBOUI, SCRATCHPKG, SLACKPKG, SLAPT_GET, SLPKG, TCE,
|
||||||
URPMQ, XBPS, YUM/ZYPP."],
|
TAZPKG, URPMQ, XBPS, YUM/ZYPP."],
|
||||||
['1', '-R', '--raid', "RAID data. Shows RAID devices, states, levels, array
|
['1', '-R', '--raid', "RAID data. Shows RAID devices, states, levels, array
|
||||||
sizes, and components. md-raid: If device is resyncing, also shows resync
|
sizes, and components. md-raid: If device is resyncing, also shows resync
|
||||||
progress line."],
|
progress line."],
|
||||||
|
@ -17643,7 +17643,7 @@ sub check_screens {
|
||||||
# Xwayland version, or Xvesa data.
|
# Xwayland version, or Xvesa data.
|
||||||
sub display_server_data {
|
sub display_server_data {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
my ($program,$tinyx);
|
my ($program);
|
||||||
# load the extra X paths, it's important that these are first, because
|
# load the extra X paths, it's important that these are first, because
|
||||||
# later Xorg versions show error if run in console or ssh if the true path
|
# later Xorg versions show error if run in console or ssh if the true path
|
||||||
# is not used.
|
# is not used.
|
||||||
|
@ -17660,31 +17660,7 @@ sub display_server_data {
|
||||||
$server = 'X.org';
|
$server = 'X.org';
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# ordered by likelihood
|
tinyx_data(\$server,\$version);
|
||||||
my @tinies = qw(vesa fbdev chips i810 igs ipaq mach64 savage sis530
|
|
||||||
trident trio ts300);
|
|
||||||
foreach my $driver (@tinies){
|
|
||||||
if ($program = main::check_program('X' . $driver)){
|
|
||||||
$tinyx = $graphics{'tinyx'} = 'X' . $driver;
|
|
||||||
$server = "TinyX $tinyx";
|
|
||||||
@data = main::grabber("$program -version 2>&1",'','strip');
|
|
||||||
$graphics{'display-driver'} = [$driver];
|
|
||||||
$graphics{'xvesa'} = $program if $driver eq 'vesa';
|
|
||||||
if (!$graphics{'screens'}){
|
|
||||||
if (-d '/sys/devices/platform/'){
|
|
||||||
my @size = main::globber('/sys/devices/platform/*/graphics/*/virtual_size');
|
|
||||||
if (@size && (my $vsize = main::reader($size[0],'strip',0))){
|
|
||||||
$vsize =~ s/,/x/g;
|
|
||||||
$graphics{'no-screens'} = $vsize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!$graphics{'no-screens'}){
|
|
||||||
$graphics{'no-screens'} = main::message('screen-tinyx',$driver);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
last;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
# print join('^ ', @paths), " :: $program\n";
|
# print join('^ ', @paths), " :: $program\n";
|
||||||
# print Data::Dumper::Dumper \@data;
|
# print Data::Dumper::Dumper \@data;
|
||||||
|
@ -17699,9 +17675,6 @@ sub display_server_data {
|
||||||
elsif ($data[0] =~ /X Window System Version (\S+)/i){
|
elsif ($data[0] =~ /X Window System Version (\S+)/i){
|
||||||
$version = $1;
|
$version = $1;
|
||||||
}
|
}
|
||||||
elsif ($tinyx && $data[0] =~ /$tinyx from tinyx (\S+)/i){
|
|
||||||
$version = $1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
$graphics{'x-server'} = [[$server,$version]] if $server;
|
$graphics{'x-server'} = [[$server,$version]] if $server;
|
||||||
}
|
}
|
||||||
|
@ -17721,6 +17694,55 @@ sub display_server_data {
|
||||||
@paths = grep { !/^\/usr\/lib|xorg|libexec/ } @paths;
|
@paths = grep { !/^\/usr\/lib|xorg|libexec/ } @paths;
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
}
|
}
|
||||||
|
# args: 0: $server; 1: $version - both by ref
|
||||||
|
sub tinyx_data {
|
||||||
|
eval $start if $b_log;
|
||||||
|
my ($server,$version) = @_;
|
||||||
|
# ordered by likelihood, Xmodesetting proposted by tinycore. Others were
|
||||||
|
# supported by DSL. Existed: Xigs Xipaq Xneomagic Xmga
|
||||||
|
my $tinies = 'vesa|fbdev|modesetting|chips|i810|igs|ipaq|mach64|mga|';
|
||||||
|
$tinies .= 'neomagic|savage|sis530|trident|trio|ts300';
|
||||||
|
# these run as a process, and sometimes also have screen resolution
|
||||||
|
if (my @result = (grep {/^(|\/\S+\/)X($tinies)\b/i} @ps_cmd)){
|
||||||
|
if ($result[0] =~ /^(|\/\S+\/)X($tinies)\b/i){
|
||||||
|
my $driver = $2;
|
||||||
|
my $vsize;
|
||||||
|
if ($result[0] =~ /\s-screen\s+(\d+(x\d+){1,})\s/){
|
||||||
|
$vsize = $1;
|
||||||
|
}
|
||||||
|
my $tinyx = $graphics{'tinyx'} = 'X' . $driver;
|
||||||
|
$$server = "TinyX $tinyx";
|
||||||
|
$graphics{'display-driver'} = [$driver];
|
||||||
|
# not all tinyx had -version, DSL did not.
|
||||||
|
if (my $program = main::check_program($tinyx)){
|
||||||
|
$graphics{'xvesa'} = $program if $driver eq 'vesa';
|
||||||
|
my @data = main::grabber("$program -version 2>&1",'','strip');
|
||||||
|
if (@data && $data[0] =~ /$tinyx from tinyx (\S+)/i){
|
||||||
|
$$version = $1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# should never happen but just in case
|
||||||
|
if (!$graphics{'screens'}){
|
||||||
|
if ($vsize){
|
||||||
|
$graphics{'no-screens'} = $vsize;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (-d '/sys/devices/platform/'){
|
||||||
|
my @size = main::globber('/sys/devices/platform/*/graphics/*/virtual_size');
|
||||||
|
if (@size && (my $vsize = main::reader($size[0],'strip',0))){
|
||||||
|
$vsize =~ s/,/x/g;
|
||||||
|
$graphics{'no-screens'} = $vsize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!$graphics{'no-screens'}){
|
||||||
|
$graphics{'no-screens'} = main::message('screen-tinyx',$driver);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
eval $end if $b_log;
|
||||||
|
}
|
||||||
|
|
||||||
sub display_protocol {
|
sub display_protocol {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
|
@ -20981,7 +21003,7 @@ package OpticalItem;
|
||||||
sub get {
|
sub get {
|
||||||
eval $start if $b_log;
|
eval $start if $b_log;
|
||||||
my $rows = $_[0];
|
my $rows = $_[0];
|
||||||
my $start = scalar @$rows;
|
my $rows_start = scalar @$rows;
|
||||||
my ($data,$val1);
|
my ($data,$val1);
|
||||||
my $num = 0;
|
my $num = 0;
|
||||||
if ($bsd_type){
|
if ($bsd_type){
|
||||||
|
@ -21006,7 +21028,7 @@ sub get {
|
||||||
drive_output($rows,$data) if %$data;
|
drive_output($rows,$data) if %$data;
|
||||||
}
|
}
|
||||||
# if none of the above increased the row count, show the error message
|
# if none of the above increased the row count, show the error message
|
||||||
if ($start == scalar @$rows){
|
if ($rows_start == scalar @$rows){
|
||||||
push(@$rows,{main::key($num++,0,1,'Message') => $val1});
|
push(@$rows,{main::key($num++,0,1,'Message') => $val1});
|
||||||
}
|
}
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
|
@ -22039,10 +22061,10 @@ sub set_filters {
|
||||||
my @partition = (@all,qw%cgroup.* cgm config debug dev devtmp efivar fdesc
|
my @partition = (@all,qw%cgroup.* cgm config debug dev devtmp efivar fdesc
|
||||||
hugetlb kern linproc linsys lxc none proc pty run security shm swap sys
|
hugetlb kern linproc linsys lxc none proc pty run security shm swap sys
|
||||||
tmp trace type udev vartmp%);
|
tmp trace type udev vartmp%);
|
||||||
my $start = '(fuse(blk)?[\._-]?)?(';
|
my $begin = '(fuse(blk)?[\._-]?)?(';
|
||||||
my $end = ')([\._-]?fuse)?(fs)?\d{0,2}';
|
my $end = ')([\._-]?fuse)?(fs)?\d{0,2}';
|
||||||
$fs_exclude = $start . join('|',@exclude) . $end;
|
$fs_exclude = $begin . join('|',@exclude) . $end;
|
||||||
$fs_skip = $start . join('|',@exclude,'f') . $end; # apfs?; BSD ffs has no u/l
|
$fs_skip = $begin . join('|',@exclude,'f') . $end; # apfs?; BSD ffs has no u/l
|
||||||
$part_filter = '((' . join('|',@partition) . ')(fs)?|';
|
$part_filter = '((' . join('|',@partition) . ')(fs)?|';
|
||||||
$part_filter .= '\/dev|\/dev\/(block\/)?loop[0-9]+|\/run(\/.*)?|\/sys\/.*)';
|
$part_filter .= '\/dev|\/dev\/(block\/)?loop[0-9]+|\/run(\/.*)?|\/sys\/.*)';
|
||||||
# print "$part_filter\n";
|
# print "$part_filter\n";
|
||||||
|
@ -24694,7 +24716,7 @@ sub get {
|
||||||
$rows->[0]{$_} = $packages->{$_};
|
$rows->[0]{$_} = $packages->{$_};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
my $start = scalar @$rows; # to test if we found more rows after
|
my $rows_start = scalar @$rows; # to test if we found more rows after
|
||||||
$num = 0;
|
$num = 0;
|
||||||
if ($bsd_type){
|
if ($bsd_type){
|
||||||
get_repos_bsd($rows);
|
get_repos_bsd($rows);
|
||||||
|
@ -24709,7 +24731,7 @@ sub get {
|
||||||
undef %repo_keys;
|
undef %repo_keys;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($start == scalar @$rows){
|
if ($rows_start == scalar @$rows){
|
||||||
my $pm_missing;
|
my $pm_missing;
|
||||||
if ($bsd_type){
|
if ($bsd_type){
|
||||||
$pm_missing = main::message('repo-data-bsd',$uname[0]);
|
$pm_missing = main::message('repo-data-bsd',$uname[0]);
|
||||||
|
@ -24752,6 +24774,8 @@ sub get_repos_linux {
|
||||||
my $slackpkg_plus = '/etc/slackpkg/slackpkgplus.conf';
|
my $slackpkg_plus = '/etc/slackpkg/slackpkgplus.conf';
|
||||||
my $slapt_get = '/etc/slapt-get/';
|
my $slapt_get = '/etc/slapt-get/';
|
||||||
my $slpkg = '/etc/slpkg/repositories.toml';
|
my $slpkg = '/etc/slpkg/repositories.toml';
|
||||||
|
my $tazpkg = '/etc/slitaz/tazpkg.conf';
|
||||||
|
my $tazpkg_mirror = '/var/lib/tazpkg/mirror';
|
||||||
my $tce_app = '/usr/bin/tce';
|
my $tce_app = '/usr/bin/tce';
|
||||||
my $tce_file = '/opt/tcemirror';
|
my $tce_file = '/opt/tcemirror';
|
||||||
my $tce_file2 = '/opt/localmirrors';
|
my $tce_file2 = '/opt/localmirrors';
|
||||||
|
@ -25270,7 +25294,7 @@ sub get_repos_linux {
|
||||||
push(@content, "$1 ~ $type");
|
push(@content, "$1 ~ $type");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (! @content){
|
if (!@content){
|
||||||
$key = repo_data('missing','cards');
|
$key = repo_data('missing','cards');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -25283,6 +25307,11 @@ sub get_repos_linux {
|
||||||
);
|
);
|
||||||
@content = ();
|
@content = ();
|
||||||
}
|
}
|
||||||
|
## tazpkg: Slitaz
|
||||||
|
if (-e $tazpkg || -e $tazpkg_mirror){
|
||||||
|
$data = repo_builder($tazpkg_mirror,'tazpkg','^\s*[^#]+');
|
||||||
|
push(@$rows,@$data);
|
||||||
|
}
|
||||||
## tce: TinyCore
|
## tce: TinyCore
|
||||||
if (-e $tce_app || -f $tce_file || -f $tce_file2){
|
if (-e $tce_app || -f $tce_file || -f $tce_file2){
|
||||||
if (-f $tce_file){
|
if (-f $tce_file){
|
||||||
|
@ -25615,6 +25644,8 @@ sub set_repo_keys {
|
||||||
'slaptget-missing' => 'No active slapt-get repos in',
|
'slaptget-missing' => 'No active slapt-get repos in',
|
||||||
'slpkg-active' => 'Active slpkg repos in',
|
'slpkg-active' => 'Active slpkg repos in',
|
||||||
'slpkg-missing' => 'No active slpkg repos in',
|
'slpkg-missing' => 'No active slpkg repos in',
|
||||||
|
'tazpkg-active' => 'tazpkg mirrors in',
|
||||||
|
'tazpkg-missing' => 'No tazpkg mirrors in',
|
||||||
'tce-active' => 'tce mirrors in',
|
'tce-active' => 'tce mirrors in',
|
||||||
'tce-missing' => 'No tce mirrors in',
|
'tce-missing' => 'No tce mirrors in',
|
||||||
'xbps-active' => 'Active xbps repos in',
|
'xbps-active' => 'Active xbps repos in',
|
||||||
|
@ -28813,28 +28844,34 @@ sub version_proc {
|
||||||
# $result='Linux version 5.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-1) 10.2.1 20201207, GNU ld (GNU Binutils for Debian) 2.35.1) #1 SMP Debian 5.9.15-1 (2020-12-17)';
|
# $result='Linux version 5.9.0-5-amd64 (debian-kernel@lists.debian.org) (gcc-10 (Debian 10.2.1-1) 10.2.1 20201207, GNU ld (GNU Binutils for Debian) 2.35.1) #1 SMP Debian 5.9.15-1 (2020-12-17)';
|
||||||
# $result='Linux version 2.6.1 (GNU 0.9 GNU-Mach 1.8+git20201007-486/Hurd-0.9 i686-AT386)';
|
# $result='Linux version 2.6.1 (GNU 0.9 GNU-Mach 1.8+git20201007-486/Hurd-0.9 i686-AT386)';
|
||||||
# $result='NetBSD version 9.1 (netbsd@localhost) (gcc version 7.5.0) NetBSD 9.1 (GENERIC) #0: Sun Oct 18 19:24:30 UTC 2020';
|
# $result='NetBSD version 9.1 (netbsd@localhost) (gcc version 7.5.0) NetBSD 9.1 (GENERIC) #0: Sun Oct 18 19:24:30 UTC 2020';
|
||||||
# $result='Linux version 6.0.8-0-generic (chimera@chimera) (clang version 15.0.4, LLD 15.0.4) #1 SMP PREEMPT_DYNAMIC Fri Nov 11 13:45:29 UTC 2022';
|
#$result='Linux version 6.0.8-0-generic (chimera@chimera) (clang version 15.0.4, LLD 15.0.4) #1 SMP PREEMPT_DYNAMIC Fri Nov 11 13:45:29 UTC 2022';
|
||||||
# 2023 ubuntu, sigh..
|
# 2023 ubuntu, sigh..
|
||||||
# $result='Linux version 6.5.8-1-liquorix-amd64 (steven@liquorix.net) (gcc (Debian 13.2.0-4) 13.2.0, GNU ld (GNU Binutils for Debian) 2.41) #1 ZEN SMP PREEMPT liquorix 6.5-9.1~trixie (2023-10-19)';
|
# $result='Linux version 6.5.8-1-liquorix-amd64 (steven@liquorix.net) (gcc (Debian 13.2.0-4) 13.2.0, GNU ld (GNU Binutils for Debian) 2.41) #1 ZEN SMP PREEMPT liquorix 6.5-9.1~trixie (2023-10-19)';
|
||||||
# $result='Linux version 6.5.0-9-generic (buildd@bos03-amd64-043) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.41) #9-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 7 01:35:40 UTC 2023';
|
# $result='Linux version 6.5.0-9-generic (buildd@bos03-amd64-043) (x86_64-linux-gnu-gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.41) #9-Ubuntu SMP PREEMPT_DYNAMIC Sat Oct 7 01:35:40 UTC 2023';
|
||||||
$result='Linux version 6.5.13-un-def-alt1 (builder@localhost.localdomain) (gcc-13 (GCC) 13.2.1 20230817 (ALT Sisyphus 13.2.1-alt2), GNU ld (GNU Binutils) 2.41.0.20230826) #1 SMP PREEMPT_DYNAMIC Wed Nov 29 15:54:38 UTC 2023';
|
# $result='Linux version 6.5.13-un-def-alt1 (builder@localhost.localdomain) (gcc-13 (GCC) 13.2.1 20230817 (ALT Sisyphus 13.2.1-alt2), GNU ld (GNU Binutils) 2.41.0.20230826) #1 SMP PREEMPT_DYNAMIC Wed Nov 29 15:54:38 UTC 2023';
|
||||||
}
|
}
|
||||||
# 'clang version 9.0.0 ('; 'gcc version 7.5.0'
|
# 'clang version 9.0.0 ('; 'gcc version 7.5.0'
|
||||||
if ($result =~ /(gcc|clang).*version\s([^,\s\)]+)/){
|
if ($result =~ /(gcc|clang).*?version\s([^,\s\)]+)/){
|
||||||
$version = $2;
|
$version = $2;
|
||||||
$version ||= 'N/A';
|
$version ||= 'N/A';
|
||||||
@$compiler = ($1,$version);
|
@$compiler = ($1,$version);
|
||||||
}
|
}
|
||||||
elsif ($result =~ /\((gcc|clang)[^\(]*\([^\)]+\)\s+([0-9\.]+)(\s[^.]*)?,\s*/){
|
elsif ($result =~ /(gcc|clang).*?\s(\d+(\.\d+){2,4})[)\s,_-]/){
|
||||||
$version = $2;
|
@$compiler = ($1,$2);
|
||||||
$version ||= 'N/A';
|
|
||||||
@$compiler = ($1,$version);
|
|
||||||
}
|
}
|
||||||
elsif ($result =~ /\((\S+\s*)(gcc|clang)[^\(]*\([^\)]+\)\s+([0-9\.]+)(\s[^.]*)?,\s*/){
|
elsif ($result =~ /(gcc|clang)/){
|
||||||
$version = $3;
|
@$compiler = ($1,'N/A');
|
||||||
$version ||= 'N/A';
|
|
||||||
@$compiler = ($2,$version);
|
|
||||||
}
|
}
|
||||||
|
# elsif ($result =~ /\((gcc|clang)[^\(]*\([^\)]+\)\s+([0-9\.]+)(\s[^.]*)?,\s*/){
|
||||||
|
# $version = $2;
|
||||||
|
# $version ||= 'N/A';
|
||||||
|
# @$compiler = ($1,$version);
|
||||||
|
# }
|
||||||
|
# elsif ($result =~ /\((\S+\s*)(gcc|clang)[^\(]*\([^\)]+\)\s+([0-9\.]+)(\s[^.]*)?,\s*/){
|
||||||
|
# $version = $3;
|
||||||
|
# $version ||= 'N/A';
|
||||||
|
# @$compiler = ($2,$version);
|
||||||
|
# }
|
||||||
}
|
}
|
||||||
main::log_data('dump','@$compiler',$compiler) if $b_log;
|
main::log_data('dump','@$compiler',$compiler) if $b_log;
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
|
@ -31022,6 +31059,7 @@ sub get_linux_distro {
|
||||||
# Force use of pretty name because that's only location of derived distro name
|
# Force use of pretty name because that's only location of derived distro name
|
||||||
# devuan should catch many devuans spins, which often put their names in pretty
|
# devuan should catch many devuans spins, which often put their names in pretty
|
||||||
my $osr_pretty = 'devuan|slackel|zinc';
|
my $osr_pretty = 'devuan|slackel|zinc';
|
||||||
|
my $distro_file_name = 'slitaz'; # these may not have the distro name in the file
|
||||||
my ($b_issue,$b_lsb,$b_osr_pretty,$b_skip_issue,$b_skip_osr);
|
my ($b_issue,$b_lsb,$b_osr_pretty,$b_skip_issue,$b_skip_osr);
|
||||||
my ($issue,$lsb_release) = ('/etc/issue','/etc/lsb-release');
|
my ($issue,$lsb_release) = ('/etc/issue','/etc/lsb-release');
|
||||||
# Note: OpenSuse Tumbleweed 2018-05 has made /etc/issue created by sym link to /run/issue
|
# Note: OpenSuse Tumbleweed 2018-05 has made /etc/issue created by sym link to /run/issue
|
||||||
|
@ -31243,9 +31281,6 @@ sub get_linux_distro {
|
||||||
if ($extra == 0){$distro =~ s/Debian\s*GNU\/Linux/Raspberry Pi OS/;}
|
if ($extra == 0){$distro =~ s/Debian\s*GNU\/Linux/Raspberry Pi OS/;}
|
||||||
else {$distro = 'Raspberry Pi OS';}
|
else {$distro = 'Raspberry Pi OS';}
|
||||||
}
|
}
|
||||||
elsif (-d '/etc/salixtools/' && $distro =~ /Slackware/i){
|
|
||||||
$distro =~ s/Slackware/Salix/;
|
|
||||||
}
|
|
||||||
# check for spins, relies on xdg directory name
|
# check for spins, relies on xdg directory name
|
||||||
elsif ($distro =~ /^(Ubuntu)/i){
|
elsif ($distro =~ /^(Ubuntu)/i){
|
||||||
my $base = $1;
|
my $base = $1;
|
||||||
|
@ -31255,6 +31290,13 @@ sub get_linux_distro {
|
||||||
$distro = $temp;
|
$distro = $temp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
elsif (-d '/etc/salixtools/' && $distro =~ /Slackware/i){
|
||||||
|
$distro =~ s/Slackware/Salix/;
|
||||||
|
}
|
||||||
|
elsif ($distro_file =~ /($distro_file_name)/ && $distro =~ /^[\d\.]+$/){
|
||||||
|
$distro_file =~ s/\/etc\/|[-_]|release|version//g;
|
||||||
|
$distro = ucfirst($distro_file) . ' ' . $distro;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# android fallback, sometimes requires root, sometimes doesn't
|
# android fallback, sometimes requires root, sometimes doesn't
|
||||||
|
@ -32003,6 +32045,7 @@ sub get {
|
||||||
my $default = ($extra > 1) ? get_runlevel_default() : '';
|
my $default = ($extra > 1) ? get_runlevel_default() : '';
|
||||||
my ($rc,$rc_version) = ('','');
|
my ($rc,$rc_version) = ('','');
|
||||||
my $comm = (-r '/proc/1/comm') ? main::reader('/proc/1/comm','',0) : '';
|
my $comm = (-r '/proc/1/comm') ? main::reader('/proc/1/comm','',0) : '';
|
||||||
|
my $link = readlink('/sbin/init');
|
||||||
# this test is pretty solid, if pid 1 is owned by systemd, it is systemd
|
# this test is pretty solid, if pid 1 is owned by systemd, it is systemd
|
||||||
# otherwise that is 'init', which covers the rest of the init systems.
|
# otherwise that is 'init', which covers the rest of the init systems.
|
||||||
# more data may be needed for other init systems.
|
# more data may be needed for other init systems.
|
||||||
|
@ -32075,22 +32118,27 @@ sub get {
|
||||||
# fallback for some inits that link to /sbin/init
|
# fallback for some inits that link to /sbin/init
|
||||||
elsif ($comm eq 'init'){
|
elsif ($comm eq 'init'){
|
||||||
# shows /sbin/dinit-init but may change
|
# shows /sbin/dinit-init but may change
|
||||||
if (-e '/sbin/dinit' && readlink('/sbin/init') =~ /dinit/){
|
if (-e '/sbin/dinit' && $link && $link =~ /dinit/){
|
||||||
dinit_data();
|
dinit_data();
|
||||||
}
|
}
|
||||||
elsif (-e '/sbin/openrc-init' && readlink('/sbin/init') =~ /openrc/){
|
elsif (-e '/sbin/openrc-init' && $link && $link =~ /openrc/){
|
||||||
($init,$init_version) = openrc_data();
|
($init,$init_version) = openrc_data();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!$init){
|
if (!$init){
|
||||||
# output: /sbin/init --version: init (upstart 1.1)
|
# openwrt/busybox /sbin/init hangs on --version command
|
||||||
# init (upstart 0.6.3)
|
if (-e '/sbin/init' && $link && $link =~ /busybox/){
|
||||||
# openwrt /sbin/init hangs on --version command, I think
|
$init_version = main::program_version('init', 'busybox', '2','--help',1,1);
|
||||||
if (!%risc &&
|
$init = 'BusyBox';
|
||||||
|
}
|
||||||
|
# risky since we don't know which init it is. $comm == 'init'
|
||||||
|
# output: /sbin/init --version: init (upstart 1.1); init (upstart 0.6.3)
|
||||||
|
elsif (!%risc && !$link && main::globber('/{usr/lib,sbin,var/log}/upstart*') &&
|
||||||
($init_version = main::program_version('init', 'upstart', '3','--version'))){
|
($init_version = main::program_version('init', 'upstart', '3','--version'))){
|
||||||
$init = 'Upstart';
|
$init = 'Upstart';
|
||||||
}
|
}
|
||||||
|
# surely more positive way to detect active
|
||||||
elsif (main::check_program('launchctl')){
|
elsif (main::check_program('launchctl')){
|
||||||
$init = 'launchd';
|
$init = 'launchd';
|
||||||
}
|
}
|
||||||
|
@ -33375,6 +33423,7 @@ sub package_counts {
|
||||||
# ['slackpkg','pkgtool','slapt-get','slpkg','swaret']],
|
# ['slackpkg','pkgtool','slapt-get','slpkg','swaret']],
|
||||||
# ['slapt-get','slapt-get','p','--installed',1,0,''],
|
# ['slapt-get','slapt-get','p','--installed',1,0,''],
|
||||||
# ['spkg','spkg','p','--installed',1,0,''],
|
# ['spkg','spkg','p','--installed',1,0,''],
|
||||||
|
['tazpkg','tazpkg','p','list',1,0,'','',['tazpkgbox','tazpanel']],
|
||||||
['tce','tce-status','p','-i',1,0,'','',['apps','tce-load']],
|
['tce','tce-status','p','-i',1,0,'','',['apps','tce-load']],
|
||||||
# note: I believe mageia uses rpm internally but confirm
|
# note: I believe mageia uses rpm internally but confirm
|
||||||
# ['urpmi','urpmq','p','??',1,0,''],
|
# ['urpmi','urpmq','p','??',1,0,''],
|
||||||
|
@ -34418,10 +34467,13 @@ sub set_ps_aux {
|
||||||
@temp = split(/\s+/, $header);
|
@temp = split(/\s+/, $header);
|
||||||
}
|
}
|
||||||
$ps_cols = $#temp; # the indexes, not the scalar count
|
$ps_cols = $#temp; # the indexes, not the scalar count
|
||||||
if ($ps_cols < 10){
|
# we want more data from ps busybox
|
||||||
my $version = qx(ps --version 2>&1);
|
my $cols_use = ($ps_cols < 4) ? 7 : 2;
|
||||||
$b_busybox_ps = 1 if $version =~ /busybox/i;
|
# not used, $b_busybox_ps was global
|
||||||
}
|
# if ($ps_cols < 10){
|
||||||
|
# my $version = qx(ps --version 2>&1);
|
||||||
|
# $b_busybox_ps = 1 if $version =~ /busybox/i;
|
||||||
|
# }
|
||||||
return if !@$ps; # note: mips/openwrt ps has no 'a'
|
return if !@$ps; # note: mips/openwrt ps has no 'a'
|
||||||
for (@$ps){
|
for (@$ps){
|
||||||
next if !$_;
|
next if !$_;
|
||||||
|
@ -34432,7 +34484,7 @@ sub set_ps_aux {
|
||||||
# slice out 10th to last elements of ps aux rows
|
# slice out 10th to last elements of ps aux rows
|
||||||
my $final = $#split;
|
my $final = $#split;
|
||||||
# some stuff has a lot of data, chrome for example
|
# some stuff has a lot of data, chrome for example
|
||||||
$final = ($final > ($ps_cols + 2)) ? $ps_cols + 2 : $final;
|
$final = ($final > ($ps_cols + $cols_use)) ? $ps_cols + $cols_use : $final;
|
||||||
# handle case of ps wrapping lines despite ww unlimited width, which
|
# handle case of ps wrapping lines despite ww unlimited width, which
|
||||||
# should NOT be happening, but is.
|
# should NOT be happening, but is.
|
||||||
next if !defined $split[$ps_cols];
|
next if !defined $split[$ps_cols];
|
||||||
|
@ -34440,8 +34492,8 @@ sub set_ps_aux {
|
||||||
push(@ps_cmd,join(' ', @split[$ps_cols .. $final]));
|
push(@ps_cmd,join(' ', @split[$ps_cols .. $final]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# never, because ps loaded before option handler
|
# never prints with 5, because ps loaded before option handler
|
||||||
# print Dumper \@ps_cmd; # if $dbg[5];
|
# print 'ps main: ', Dumper \@ps_cmd; # if $dbg[5];
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34538,7 +34590,7 @@ sub set_ps_gui {
|
||||||
}
|
}
|
||||||
# print Dumper \@ps_gui if $dbg[5];
|
# print Dumper \@ps_gui if $dbg[5];
|
||||||
uniq(\@ps_gui) if @ps_gui;
|
uniq(\@ps_gui) if @ps_gui;
|
||||||
print Dumper \@ps_gui if $dbg[5];
|
print 'ps_gui: ', Dumper \@ps_gui if $dbg[5];
|
||||||
log_data('dump','@ps_gui',\@ps_gui) if $b_log;
|
log_data('dump','@ps_gui',\@ps_gui) if $b_log;
|
||||||
eval $end if $b_log;
|
eval $end if $b_log;
|
||||||
}
|
}
|
||||||
|
|
4
pinxi.1
4
pinxi.1
|
@ -15,7 +15,7 @@
|
||||||
.\" with this program; if not, write to the Free Software Foundation, Inc.,
|
.\" with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
.\"
|
.\"
|
||||||
.TH INXI 1 "2023\-11\-27" "inxi" "inxi manual"
|
.TH INXI 1 "2023\-12\-09" "inxi" "inxi manual"
|
||||||
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
inxi \- Command line system information script for console and IRC
|
inxi \- Command line system information script for console and IRC
|
||||||
|
@ -725,6 +725,8 @@ apt distros like PCLinuxOS or Alt\-Linux)
|
||||||
|
|
||||||
\fBTCE\fR (TinyCore)
|
\fBTCE\fR (TinyCore)
|
||||||
|
|
||||||
|
\fBTAZPKG\fR (Slitaz)
|
||||||
|
|
||||||
\fBURPMI\fR (Mandriva, Mageia + derived versions)
|
\fBURPMI\fR (Mandriva, Mageia + derived versions)
|
||||||
|
|
||||||
\fBXBPS\fR (Void)
|
\fBXBPS\fR (Void)
|
||||||
|
|
Loading…
Reference in a new issue