versions() added homebrew

This commit is contained in:
Sebastian Hildebrandt 2025-01-04 16:26:20 +01:00
parent 8aa3119629
commit 0c25994c85
6 changed files with 306 additions and 256 deletions

View File

@ -90,6 +90,8 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
| Version | Date | Comment |
| ------- | ---------- | --------------------------------------------------------------------------------------------------- |
| 5.25.0 | 2025-01-05 | `versions()` added homebrew |
| 5.24.9 | 2025-01-04 | `checkWebsite()` reestablished certificate validation |
| 5.24.9 | 2025-01-04 | `checkWebsite()` reestablished certificate validation |
| 5.24.8 | 2025-01-03 | `powerShell()` detect default installation path (windows) |
| 5.24.7 | 2025-01-03 | `system()` chassis type parsing improved (macOS) |

View File

@ -178,6 +178,7 @@ si.cpu()
(last 7 major and minor version releases)
- Version 5.24.0: `versions()` added homebrew
- Version 5.24.0: `versions()` added bun and deno
- Version 5.23.0: `usb()` added serial number (linux)
- Version 5.22.0: `wifiConnections()` added signal quality

View File

@ -57,6 +57,11 @@
</tr>
</thead>
<tbody>
<tr>
<th scope="row">5.25.0</th>
<td>2024-01-05</td>
<td><span class="code">versions()</span> added homebrew</td>
</tr>
<tr>
<th scope="row">5.24.9</th>
<td>2025-01-04</td>

View File

@ -170,7 +170,7 @@
<img class="logo" src="assets/logo.png" alt="logo">
<div class="title">systeminformation</div>
<div class="subtitle"><span id="typed"></span>&nbsp;</div>
3<div class="version">New Version: <span id="version">5.24.9</span></div>
3<div class="version">New Version: <span id="version">5.24.10</span></div>
<button class="btn btn-light" onclick="location.href='https://github.com/sebhildebrandt/systeminformation'">View on Github <i class=" fab fa-github"></i></button>
</div>
<div class="down">

View File

@ -289,177 +289,7 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
<td>X</td>
<td>X</td>
<td>X</td>
<td>os kernel version</td>
</tr>
<tr>
<td></td>
<td>openssl</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>node openssl version</td>
</tr>
<tr>
<td></td>
<td>systemOpenssl</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>os openssl version</td>
</tr>
<tr>
<td></td>
<td>systemOpensslLib</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>openSSL, LibreSSL, ...</td>
</tr>
<tr>
<td></td>
<td>node</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>node version</td>
</tr>
<tr>
<td></td>
<td>deno</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>deno version</td>
</tr>
<tr>
<td></td>
<td>bun</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bun version</td>
</tr>
<tr>
<td></td>
<td>v8</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>v8 version</td>
</tr>
<tr>
<td></td>
<td>npm</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>npm version</td>
</tr>
<tr>
<td></td>
<td>yarn</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>yarn version</td>
</tr>
<tr>
<td></td>
<td>pm2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>pm2 version</td>
</tr>
<tr>
<td></td>
<td>gulp</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>gulp version</td>
</tr>
<tr>
<td></td>
<td>grunt</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>grunt version</td>
</tr>
<tr>
<td></td>
<td>git</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>git version</td>
</tr>
<tr>
<td></td>
<td>tsc</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>typescript version</td>
</tr>
<tr>
<td></td>
<td>mysql</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>mysql version</td>
</tr>
<tr>
<td></td>
<td>redis</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>redis version</td>
</tr>
<tr>
<td></td>
<td>mongodb</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>mongodb version</td>
<td>kernel version</td>
</tr>
<tr>
<td></td>
@ -471,6 +301,146 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
<td>X</td>
<td>apache version</td>
</tr>
<tr>
<td></td>
<td>bash</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bash version</td>
</tr>
<tr>
<td></td>
<td>bun</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bun version</td>
</tr>
<tr>
<td></td>
<td>deno</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>deno version</td>
</tr>
<tr>
<td></td>
<td>docker</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>docker version</td>
</tr>
<tr>
<td></td>
<td>dotnet</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>dotnet version</td>
</tr>
<tr>
<td></td>
<td>fish</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>fish version</td>
</tr>
<tr>
<td></td>
<td>gcc</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>gcc version</td>
</tr>
<tr>
<td></td>
<td>git</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>git version</td>
</tr>
<tr>
<td></td>
<td>grunt</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>grunt version</td>
</tr>
<tr>
<td></td>
<td>gulp</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>gulp version</td>
</tr>
<tr>
<td></td>
<td>homebrew</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>homebrew version</td>
</tr>
<tr>
<td></td>
<td>java</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>java version</td>
</tr>
<tr>
<td></td>
<td>mongodb</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>mongodb version</td>
</tr>
<tr>
<td></td>
<td>mysql</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>mysql version</td>
</tr>
<tr>
<td></td>
<td>nginx</td>
@ -481,6 +451,46 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
<td>X</td>
<td>nginx version</td>
</tr>
<tr>
<td></td>
<td>node</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>node version</td>
</tr>
<tr>
<td></td>
<td>npm</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>npm version</td>
</tr>
<tr>
<td></td>
<td>openssl</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>openssl version</td>
</tr>
<tr>
<td></td>
<td>perl</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>perl version</td>
</tr>
<tr>
<td></td>
<td>php</td>
@ -493,13 +503,33 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
</tr>
<tr>
<td></td>
<td>docker</td>
<td>pip3</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>docker version</td>
<td>pip3 version</td>
</tr>
<tr>
<td></td>
<td>pip</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>pip version</td>
</tr>
<tr>
<td></td>
<td>pm2</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>pm2 version</td>
</tr>
<tr>
<td></td>
@ -523,23 +553,13 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
</tr>
<tr>
<td></td>
<td>perl</td>
<td>powershell</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>perl version</td>
</tr>
<tr>
<td></td>
<td>python</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>python version</td>
<td>powershell version</td>
</tr>
<tr>
<td></td>
@ -553,23 +573,63 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
</tr>
<tr>
<td></td>
<td>java</td>
<td>python</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>java version</td>
<td>python version</td>
</tr>
<tr>
<td></td>
<td>gcc</td>
<td>redis</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>gcc version</td>
<td>redis version</td>
</tr>
<tr>
<td></td>
<td>systemOpenssl</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>systemOpenssl version</td>
</tr>
<tr>
<td></td>
<td>systemOpensslLib</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>systemOpensslLib version</td>
</tr>
<tr>
<td></td>
<td>tsc</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>tsc version</td>
</tr>
<tr>
<td></td>
<td>v8</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>v8 version</td>
</tr>
<tr>
<td></td>
@ -583,13 +643,13 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
</tr>
<tr>
<td></td>
<td>bash</td>
<td>yarn</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>bash version</td>
<td>yarn version</td>
</tr>
<tr>
<td></td>
@ -601,36 +661,6 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
<td>X</td>
<td>zsh version</td>
</tr>
<tr>
<td></td>
<td>fish</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>X</td>
<td>fish version</td>
</tr>
<tr>
<td></td>
<td>powershell</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>powershell version</td>
</tr>
<tr>
<td></td>
<td>dotnet</td>
<td></td>
<td></td>
<td></td>
<td>X</td>
<td></td>
<td>dotnet version</td>
</tr>
<tr class="example">
<td></td>
<td colspan="7">
@ -639,43 +669,44 @@ si.osInfo().then(data => console.log(data));</code></pre class="example">
si.versions().then(data => console.log(data));</code></pre class="example">
<pre class="example">
{
kernel: '19.3.0',
openssl: '1.1.1d',
systemOpenssl: '2.8.3',
systemOpensslLib: 'LibreSSL',
node: '13.8.0',
kernel: '23.6.0',
apache: '2.4.62',
bash: '3.2.57',
bun: '1.1.21',
deno: '2.1.4',
v8: '7.9.317.25-node.28',
npm: '6.13.6',
yarn: '',
pm2: '',
gulp: '',
grunt: '',
git: '2.21.1',
tsc: '3.7.5',
mysql: 'gpl)',
redis: '',
mongodb: '',
apache: '2.4.41 (Unix)',
nginx: '',
php: '7.3.11',
docker: '19.03.5',
postfix: '3.2.2',
postgresql: '12.1',
perl: '5.18.4',
python: '2.7.16',
python3: '3.7.3',
pip: '',
pip3: '19.0.3',
java: '',
gcc: '4.2.1',
virtualbox: '',
bash: '3.2.57',
zsh: '5.8',
docker: '26.1.1',
dotnet: '',
fish: '',
gcc: '15.0.0',
git: '2.39.3',
grunt: '',
gulp: '',
homebrew: '4.4.14',
java: '17.0.2',
mongodb: '',
mysql: '9.0.1',
nginx: '',
node: '22.12.0',
npm: '10.9.0',
openssl: '3.0.15+quic',
perl: '5.34.1',
php: '8.3.6',
pip3: '24.2',
pip: '20.3.4',
pm2: '5.1.2',
postfix: '3.2.2',
postgresql: '16.4',
powershell: '',
dotnet: ''
python3: '3.12.5',
python: '',
redis: '',
systemOpenssl: '3.3.1',
systemOpensslLib: 'OpenSSL',
tsc: '5.2.2',
v8: '12.4.254.21-node.21',
virtualbox: '',
yarn: '1.22.17',
zsh: '5.9''
}</pre>
<h5>Example 2</h5>
<pre><code class="js">const si = require('systeminformation');

View File

@ -463,6 +463,7 @@ function versions(apps, callback) {
git: '',
grunt: '',
gulp: '',
homebrew: '',
java: '',
mongodb: '',
mysql: '',
@ -494,7 +495,7 @@ function versions(apps, callback) {
if (apps === '*') {
return {
versions: versionObject,
counter: 32
counter: 34
};
}
if (!Array.isArray(apps)) {
@ -609,6 +610,16 @@ function versions(apps, callback) {
functionProcessed();
});
}
if ({}.hasOwnProperty.call(appsObj.versions, 'homebrew')) {
cmd = 'brew';
exec(`${cmd} --version`, function (error, stdout) {
if (!error) {
const brew = stdout.toString().split('\n')[0] || '';
appsObj.versions.homebrew = (brew.toLowerCase().split(' ')[1] || '').trim();
}
functionProcessed();
});
}
if ({}.hasOwnProperty.call(appsObj.versions, 'tsc')) {
cmd = 'tsc';
if (_windows) {