Last active
February 17, 2020 04:47
-
-
Save ablakely/4328790d106ae448885fe8949f5f4301 to your computer and use it in GitHub Desktop.
Mac Sysinfo Perl Script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/perl -w | |
# | |
# mac-sysinfo.pl: system_profiler parser script - written for IRC bot brag script | |
# | |
# Tested hardware/software | |
# iMac G4 - OS X 10.4.11 | |
# Mac Pro(1,1) - OS X 10.11.6 | |
# | |
# Written by Aaron Blakely <aaron@ephasic.org> | |
use strict; | |
use warnings; | |
sub getMacInfo { | |
my @hardinfo = `system_profiler SPHardwareDataType SPSoftwareDataType`; | |
my %ret; | |
foreach my $line (@hardinfo) { | |
chomp $line; | |
if ($line =~ /^\s+(Machine|Model) Name\: (.*)$/) { | |
$ret{machineName} = $2; | |
} | |
elsif ($line =~ /^\s+(Machine Model|Model Identifier)\: (.*)$/) { | |
$ret{machineModel} = $2; | |
} | |
elsif ($line =~ /^\s+(CPU|Processor) Speed\: (.*)$/) { | |
$ret{cpuSpeed} = $2; | |
} | |
elsif ($line =~ /^\s+Total Number of Cores\: (.*)$/) { | |
$ret{numOfCores} = $1; | |
} | |
elsif ($line =~ /^\s+(CPU Type|Processor Name)\: (.*)$/) { | |
$ret{cpuType} = $2; | |
} | |
elsif ($line =~ /^\s+(Number Of CPUs|Number of Processors)\: (.*)$/) { | |
$ret{numOfCPUs} = $2; | |
} | |
elsif ($line =~ /^\s+Memory\: (.*)$/) { | |
$ret{memory} = $1; | |
} | |
elsif ($line =~ /^\s+System Version\: (.*)$/) { | |
$ret{osVersion} = $1; | |
} | |
elsif ($line =~ /^\s+Kernel Version\: (.*)$/) { | |
$ret{kernelVersion} = $1; | |
} | |
elsif ($line =~ /^\s+Computer Name\: (.*)$/) { | |
$ret{computerName} = $1; | |
} | |
} | |
$ret{software} = $ret{osVersion}." (Kernel: ".$ret{kernelVersion}.")"; | |
$ret{hardware} = $ret{machineName}." (".$ret{machineModel}.")"; | |
$ret{hardware} .= " CPU (".$ret{numOfCPUs}." installed"; | |
if ($ret{numOfCores}) { | |
$ret{hardware} .= ", ".$ret{numOfCores}." cores"; | |
} | |
$ret{hardware} .= "): ".$ret{cpuType}." @ ".$ret{cpuSpeed}; | |
$ret{hardware} .= " RAM: ".$ret{memory}; | |
return \%ret; | |
} | |
my $sysinfo = getMacInfo(); | |
print $sysinfo->{computerName}.": OS: ".$sysinfo->{software}." Hardware: ".$sysinfo->{hardware}."\n"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment