vboxInfo() added stoppedSince, started, stopped
This commit is contained in:
parent
52b48496fb
commit
656c222b0a
@ -30,6 +30,7 @@ For major (breaking) changes - version 3 and 2 see end of page.
|
|||||||
|
|
||||||
| Version | Date | Comment |
|
| Version | Date | Comment |
|
||||||
| -------------- | -------------- | -------- |
|
| -------------- | -------------- | -------- |
|
||||||
|
| 4.8.3 | 2019-06-01 | `vboxInfo()` added stoppedSince, started, stopped |
|
||||||
| 4.8.2 | 2019-05-31 | `dockerInfo()` changed property naming style |
|
| 4.8.2 | 2019-05-31 | `dockerInfo()` changed property naming style |
|
||||||
| 4.8.1 | 2019-05-31 | updated docs |
|
| 4.8.1 | 2019-05-31 | updated docs |
|
||||||
| 4.8.0 | 2019-05-31 | added `vboxInfo()` detailed virtual box info |
|
| 4.8.0 | 2019-05-31 | added `vboxInfo()` detailed virtual box info |
|
||||||
|
|||||||
@ -555,7 +555,10 @@ I also created a nice little command line tool called [mmon][mmon-github-url] (
|
|||||||
| | [0].id | X | X | X | X | X | virtual box ID |
|
| | [0].id | X | X | X | X | X | virtual box ID |
|
||||||
| | [0].name | X | X | X | X | X | name |
|
| | [0].name | X | X | X | X | X | name |
|
||||||
| | [0].running | X | X | X | X | X | vbox is running |
|
| | [0].running | X | X | X | X | X | vbox is running |
|
||||||
|
| | [0].started | X | X | X | X | X | started date time |
|
||||||
| | [0].runningSince | X | X | X | X | X | running since (secs) |
|
| | [0].runningSince | X | X | X | X | X | running since (secs) |
|
||||||
|
| | [0].stopped | X | X | X | X | X | stopped date time |
|
||||||
|
| | [0].stoppedSince | X | X | X | X | X | stopped since (secs) |
|
||||||
| | [0].guestOS | X | X | X | X | X | Guest OK |
|
| | [0].guestOS | X | X | X | X | X | Guest OK |
|
||||||
| | [0].hardwareUUID | X | X | X | X | X | Hardware UUID |
|
| | [0].hardwareUUID | X | X | X | X | X | Hardware UUID |
|
||||||
| | [0].memory | X | X | X | X | X | Memory in MB |
|
| | [0].memory | X | X | X | X | X | Memory in MB |
|
||||||
|
|||||||
@ -80,6 +80,11 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th scope="row">4.8.3</th>
|
||||||
|
<td>2019-05-31</td>
|
||||||
|
<td><span class="code">vboxInfo()</span> added stoppedSince, started, stopped</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th scope="row">4.8.2</th>
|
<th scope="row">4.8.2</th>
|
||||||
<td>2019-05-31</td>
|
<td>2019-05-31</td>
|
||||||
|
|||||||
@ -170,7 +170,7 @@
|
|||||||
<img class="logo" src="assets/logo.png">
|
<img class="logo" src="assets/logo.png">
|
||||||
<div class="title">systeminformation</div>
|
<div class="title">systeminformation</div>
|
||||||
<div class="subtitle"><span id="typed"></span></div>
|
<div class="subtitle"><span id="typed"></span></div>
|
||||||
<div class="version">Current Version: <span id="version">4.8.2</span></div>
|
<div class="version">Current Version: <span id="version">4.8.3</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>
|
<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>
|
||||||
<div class="down">
|
<div class="down">
|
||||||
|
|||||||
@ -105,6 +105,16 @@
|
|||||||
<td>X</td>
|
<td>X</td>
|
||||||
<td>vbox is running</td>
|
<td>vbox is running</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>[0].started</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>started date time</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>[0].runningSince</td>
|
<td>[0].runningSince</td>
|
||||||
@ -115,6 +125,26 @@
|
|||||||
<td>X</td>
|
<td>X</td>
|
||||||
<td>running since (secs)</td>
|
<td>running since (secs)</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>[0].stopped</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>stopped date time</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td>[0].stoppedSince</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>X</td>
|
||||||
|
<td>stopped since (secs)</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td>[0].guestOS</td>
|
<td>[0].guestOS</td>
|
||||||
|
|||||||
3
lib/index.d.ts
vendored
3
lib/index.d.ts
vendored
@ -526,7 +526,10 @@ export namespace Systeminformation {
|
|||||||
id: string;
|
id: string;
|
||||||
name: string;
|
name: string;
|
||||||
running: boolean;
|
running: boolean;
|
||||||
|
started: string;
|
||||||
runningSince: number;
|
runningSince: number;
|
||||||
|
stopped: string;
|
||||||
|
stoppedSince: number;
|
||||||
guestOS: string;
|
guestOS: string;
|
||||||
hardwareUUID: string;
|
hardwareUUID: string;
|
||||||
memory: number;
|
memory: number;
|
||||||
|
|||||||
@ -31,13 +31,10 @@ function vboxInfo(all, callback) {
|
|||||||
process.nextTick(() => {
|
process.nextTick(() => {
|
||||||
try {
|
try {
|
||||||
exec(util.getVboxmanage() + ' list vms --long', function (error, stdout) {
|
exec(util.getVboxmanage() + ' list vms --long', function (error, stdout) {
|
||||||
let parts = stdout.toString().split('Name:');
|
let parts = (os.EOL + stdout.toString()).split(os.EOL + 'Name:');
|
||||||
parts.shift();
|
parts.shift();
|
||||||
parts.forEach(part => {
|
parts.forEach(part => {
|
||||||
const lines = part.split(os.EOL);
|
const lines = ('Name:' + part).split(os.EOL);
|
||||||
if (lines && lines[0]) {
|
|
||||||
lines[0] = 'Name:' + lines[0];
|
|
||||||
}
|
|
||||||
const state = util.getValue(lines, 'State');
|
const state = util.getValue(lines, 'State');
|
||||||
const running = state.startsWith('running');
|
const running = state.startsWith('running');
|
||||||
const runningSinceString = running ? state.replace('running (since ', '').replace(')', '').trim() : '';
|
const runningSinceString = running ? state.replace('running (since ', '').replace(')', '').trim() : '';
|
||||||
@ -51,11 +48,25 @@ function vboxInfo(all, callback) {
|
|||||||
} catch (e) {
|
} catch (e) {
|
||||||
util.noop();
|
util.noop();
|
||||||
}
|
}
|
||||||
|
const stoppedSinceString = !running ? state.replace('powered off (since', '').replace(')', '').trim() : '';
|
||||||
|
let stoppedSince = 0;
|
||||||
|
try {
|
||||||
|
if (!running) {
|
||||||
|
const sinceDateObj = new Date(stoppedSinceString);
|
||||||
|
const offset = sinceDateObj.getTimezoneOffset();
|
||||||
|
stoppedSince = Math.round((Date.now() - Date.parse(sinceDateObj)) / 1000) + offset * 60;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
util.noop();
|
||||||
|
}
|
||||||
result.push({
|
result.push({
|
||||||
id: util.getValue(lines, 'UUID'),
|
id: util.getValue(lines, 'UUID'),
|
||||||
name: util.getValue(lines, 'Name'),
|
name: util.getValue(lines, 'Name'),
|
||||||
running,
|
running,
|
||||||
|
started: runningSinceString,
|
||||||
runningSince,
|
runningSince,
|
||||||
|
stopped: stoppedSinceString,
|
||||||
|
stoppedSince,
|
||||||
guestOS: util.getValue(lines, 'Guest OS'),
|
guestOS: util.getValue(lines, 'Guest OS'),
|
||||||
hardwareUUID: util.getValue(lines, 'Hardware UUID'),
|
hardwareUUID: util.getValue(lines, 'Hardware UUID'),
|
||||||
memory: parseInt(util.getValue(lines, 'Memory size', ' '), 10),
|
memory: parseInt(util.getValue(lines, 'Memory size', ' '), 10),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user