Skip to content

Commit

Permalink
rewrote it in typescript
Browse files Browse the repository at this point in the history
  • Loading branch information
tahlilma committed Jan 12, 2021
1 parent 16654a0 commit 5ed0c33
Show file tree
Hide file tree
Showing 5 changed files with 156 additions and 59 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
![LOGO](https://github.com/bruhmoment6420/sys-fo/blob/main/images/logo.png)
# sys-fo
I basically wrote this when i was inspired by this command line tool called neo-fetch.
This is nothing special and its around 58 lines of code.
This is nothing special and its around 59 lines of code.
It shows the CPU, OS, Memory and Load information.
This uses Prompts and Systeminformation to show everything.
## Readme Contents
Expand Down
6 changes: 6 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 5 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./src/index.js"
"start": "node ./src/index.js",
"compile": "tsc ./src/index.ts"
},
"keywords": [],
"author": "",
Expand All @@ -14,5 +15,8 @@
"clear": "^0.1.0",
"prompts": "^2.4.0",
"systeminformation": "^4.33.6"
},
"devDependencies": {
"@types/node": "^14.14.20"
}
}
142 changes: 85 additions & 57 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,59 +1,87 @@
const si = require("systeminformation");
const prompts = require("prompts");
const clear = require("clear");

const log = console.log;

var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
var _this = this;
var si = require("systeminformation");
var prompts = require("prompts");
var clear = require("clear");
var log = console.log;
// Main Async Func
(async () => {
// Called if user says yes
const userAccept = () => {
// Stuff to get
valueObject = {
cpu: "manufacturer,brand, speed, cores, physicalCores, processors",
osInfo:
"platform, distro, release, codename, kernel, arch, hostname, codepage",
mem: "total, free, used, active, available",
currentLoad: "avgload, currentload, currentload_idle, raw_currentload",
};

si.get(valueObject).then(function (data) {
let systemVals = data;

log(" ");
log(
`💻 CPU:\nManufacturer: ${systemVals.cpu.manufacturer} \nBrand: ${systemVals.cpu.brand} \nSpeed: ${systemVals.cpu.speed} \nCores: ${systemVals.cpu.cores} \nPhsysicalCores: ${systemVals.cpu.physicalCores} \nProcessor: ${systemVals.cpu.processors}`
);
log(" ");
log(
`📀 OS: \nPlatform: ${systemVals.osInfo.platform} \nDistro: ${systemVals.osInfo.distro} \nRelease: ${systemVals.osInfo.release} \nCodename: ${systemVals.osInfo.codename} \nKernel: ${systemVals.osInfo.kernel} \nArch: ${systemVals.osInfo.arch} \nHostname: ${systemVals.osInfo.hostname} \nCodepage: ${systemVals.osInfo.codepage}`
);
log(" ");
log(
`💾 Memory: \nTotal: ${systemVals.mem.total} \nFree: ${systemVals.mem.free} \nUsed: ${systemVals.mem.used} \nActive: ${systemVals.mem.active} \nAvailable: ${systemVals.mem.available}`
);
log(" ");
log(
`🔌 Load: \nAverageLoad: ${systemVals.currentLoad.avgload} \nCurrentLoad: ${systemVals.currentLoad.currentload} \nIdleCurrentLoad: ${systemVals.currentLoad.currentload_idle} \nRawCurrentLoad: ${systemVals.currentLoad.raw_currentload}`
);
log(" ");
(function () { return __awaiter(_this, void 0, void 0, function () {
var userAccept, userDecline, response;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
userAccept = function () {
// Stuff to get
var valueObject = {
cpu: "manufacturer,brand, speed, cores, physicalCores, processors",
osInfo: "platform, distro, release, codename, kernel, arch, hostname, codepage",
mem: "total, free, used, active, available",
currentLoad: "avgload, currentload, currentload_idle, raw_currentload"
};
si.get(valueObject).then(function (data) {
var systemVals = data;
log(" ");
log("\uD83D\uDCBB CPU:\nManufacturer: " + systemVals.cpu.manufacturer + " \nBrand: " + systemVals.cpu.brand + " \nSpeed: " + systemVals.cpu.speed + " \nCores: " + systemVals.cpu.cores + " \nPhsysicalCores: " + systemVals.cpu.physicalCores + " \nProcessor: " + systemVals.cpu.processors);
log(" ");
log("\uD83D\uDCC0 OS: \nPlatform: " + systemVals.osInfo.platform + " \nDistro: " + systemVals.osInfo.distro + " \nRelease: " + systemVals.osInfo.release + " \nCodename: " + systemVals.osInfo.codename + " \nKernel: " + systemVals.osInfo.kernel + " \nArch: " + systemVals.osInfo.arch + " \nHostname: " + systemVals.osInfo.hostname + " \nCodepage: " + systemVals.osInfo.codepage);
log(" ");
log("\uD83D\uDCBE Memory: \nTotal: " + systemVals.mem.total + " \nFree: " + systemVals.mem.free + " \nUsed: " + systemVals.mem.used + " \nActive: " + systemVals.mem.active + " \nAvailable: " + systemVals.mem.available);
log(" ");
log("\uD83D\uDD0C Load: \nAverageLoad: " + systemVals.currentLoad.avgload + " \nCurrentLoad: " + systemVals.currentLoad.currentload + " \nIdleCurrentLoad: " + systemVals.currentLoad.currentload_idle + " \nRawCurrentLoad: " + systemVals.currentLoad.raw_currentload);
log(" ");
});
return true;
};
userDecline = function () {
clear();
return true;
};
return [4 /*yield*/, prompts({
type: "text",
name: "value",
message: "View SysInfo ? (y/n)",
validate: function (value) {
return value == "y" || value == "Y" ? userAccept() : userDecline();
}
})];
case 1:
response = _a.sent();
return [2 /*return*/];
}
});

return true;
};

// Called if user says no
const userDecline = () => {
clear();
return `Invalid Operation or Press CTRL + C or CTRL + Z to exit`;
};

// Code for the prompt
const response = await prompts({
type: "text",
name: "value",
message: "View SysInfo ? (y/n)",
validate: (value) =>
value == "y" || value == "Y" ? userAccept() : userDecline(),
});
})();
}); })();
59 changes: 59 additions & 0 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
const si = require("systeminformation");
const prompts = require("prompts");
const clear = require("clear");

const log = console.log;

// Main Async Func
(async () => {
// Called if user says yes
const userAccept = () => {
// Stuff to get
let valueObject = {
cpu: "manufacturer,brand, speed, cores, physicalCores, processors",
osInfo:
"platform, distro, release, codename, kernel, arch, hostname, codepage",
mem: "total, free, used, active, available",
currentLoad: "avgload, currentload, currentload_idle, raw_currentload",
};

si.get(valueObject).then(function (data) {
let systemVals = data;

log(" ");
log(
`💻 CPU:\nManufacturer: ${systemVals.cpu.manufacturer} \nBrand: ${systemVals.cpu.brand} \nSpeed: ${systemVals.cpu.speed} \nCores: ${systemVals.cpu.cores} \nPhsysicalCores: ${systemVals.cpu.physicalCores} \nProcessor: ${systemVals.cpu.processors}`
);
log(" ");
log(
`📀 OS: \nPlatform: ${systemVals.osInfo.platform} \nDistro: ${systemVals.osInfo.distro} \nRelease: ${systemVals.osInfo.release} \nCodename: ${systemVals.osInfo.codename} \nKernel: ${systemVals.osInfo.kernel} \nArch: ${systemVals.osInfo.arch} \nHostname: ${systemVals.osInfo.hostname} \nCodepage: ${systemVals.osInfo.codepage}`
);
log(" ");
log(
`💾 Memory: \nTotal: ${systemVals.mem.total} \nFree: ${systemVals.mem.free} \nUsed: ${systemVals.mem.used} \nActive: ${systemVals.mem.active} \nAvailable: ${systemVals.mem.available}`
);
log(" ");
log(
`🔌 Load: \nAverageLoad: ${systemVals.currentLoad.avgload} \nCurrentLoad: ${systemVals.currentLoad.currentload} \nIdleCurrentLoad: ${systemVals.currentLoad.currentload_idle} \nRawCurrentLoad: ${systemVals.currentLoad.raw_currentload}`
);
log(" ");
});

return true;
};

// Called if user says no
const userDecline = () => {
clear();
return true;
};

// Code for the prompt
const response = await prompts({
type: "text",
name: "value",
message: "View SysInfo ? (y/n)",
validate: (value) =>
value == "y" || value == "Y" ? userAccept() : userDecline(),
});
})();

0 comments on commit 5ed0c33

Please sign in to comment.