about-system 0.0.18 → 0.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -207
- package/dist/about-system-cli.d.ts +0 -0
- package/dist/about-system-cli.js +113 -205
- package/dist/about-system-cli.js.map +1 -1
- package/dist/index.d.ts +3 -9
- package/dist/index.js +4 -4
- package/dist/index.js.map +0 -0
- package/dist/system-info-api-DAF2cjeE.js +837 -0
- package/dist/system-info-api-DAF2cjeE.js.map +1 -0
- package/dist/system-info-api.d.ts +313 -194
- package/dist/system-info-api.js +9 -791
- package/dist/system-info-api.js.map +1 -1
- package/package.json +6 -6
- package/src/about-system-cli.ts +124 -221
- package/src/cache/cache-config.ts +68 -0
- package/src/cache/cache.ts +95 -0
- package/src/index.ts +0 -0
- package/src/info/hardware.ts +173 -0
- package/src/info/memory.ts +215 -0
- package/src/info/network.ts +213 -0
- package/src/info/platform.ts +145 -0
- package/src/info/process.ts +72 -0
- package/src/info/settings.ts +209 -0
- package/src/info/software.ts +192 -0
- package/src/info/system-status.ts +152 -0
- package/src/system-info-api.ts +78 -1117
- package/src/systeminfo-types.d.ts +0 -0
- package/src/types/internal-types.ts +21 -0
- package/src/utils/command.ts +47 -0
- package/src/utils/network.ts +58 -0
- package/src/utils/platform.ts +13 -0
package/dist/about-system-cli.js
CHANGED
|
@@ -1,258 +1,164 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { fileURLToPath as
|
|
6
|
-
import {
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
["user", "hostname", "os", "device", "kernel", "cpu", "gpu"],
|
|
10
|
-
["disk_used", "ram_used", "top_process", "uptime", "temperature", "battery", "load_average"],
|
|
11
|
-
["ip", "iplocal", "city", "domain", "isp"],
|
|
12
|
-
["shell", "pacman", "services_running", "containers"]
|
|
13
|
-
],
|
|
14
|
-
colors: {
|
|
15
|
-
user: "red",
|
|
16
|
-
hostname: "orange",
|
|
17
|
-
disk_used: "purple",
|
|
18
|
-
ram_used: "yellow",
|
|
19
|
-
top_process: "magenta",
|
|
20
|
-
uptime: "cyan",
|
|
21
|
-
ip: "green",
|
|
22
|
-
iplocal: "yellow",
|
|
23
|
-
city: "green",
|
|
24
|
-
domain: "gray",
|
|
25
|
-
isp: "lightblue",
|
|
26
|
-
os: "gray",
|
|
27
|
-
cpu: "orange",
|
|
28
|
-
gpu: "yellow",
|
|
29
|
-
device: "yellow",
|
|
30
|
-
kernel: "green",
|
|
31
|
-
shell: "orange",
|
|
32
|
-
pacman: "multicolor",
|
|
33
|
-
ports: "multicolor",
|
|
34
|
-
containers: "green",
|
|
35
|
-
memory_available: "blue",
|
|
36
|
-
swap_used: "purple",
|
|
37
|
-
load_average: "red",
|
|
38
|
-
users_logged_in: "cyan",
|
|
39
|
-
network_interfaces: "yellow",
|
|
40
|
-
mount_points: "gray",
|
|
41
|
-
services_running: "green",
|
|
42
|
-
temperature: "red",
|
|
43
|
-
battery: "green",
|
|
44
|
-
screen_resolution: "blue"
|
|
45
|
-
},
|
|
46
|
-
display: {
|
|
47
|
-
show_emojis: !0,
|
|
48
|
-
single_line: !1,
|
|
49
|
-
line_wrap_length: process?.stdout?.columns || 100
|
|
50
|
-
},
|
|
51
|
-
network: {
|
|
52
|
-
show_offline_message: !0
|
|
53
|
-
},
|
|
54
|
-
advanced: {
|
|
55
|
-
debug: !1
|
|
56
|
-
}
|
|
57
|
-
}, S = {
|
|
58
|
-
reset: "\x1B[0m",
|
|
59
|
-
red: "\x1B[38;5;196m",
|
|
60
|
-
orange: "\x1B[38;5;208m",
|
|
61
|
-
yellow: "\x1B[38;5;226m",
|
|
62
|
-
green: "\x1B[38;5;46m",
|
|
63
|
-
blue: "\x1B[38;5;39m",
|
|
64
|
-
cyan: "\x1B[38;5;51m",
|
|
65
|
-
purple: "\x1B[38;5;171m",
|
|
66
|
-
magenta: "\x1B[38;5;213m",
|
|
67
|
-
gray: "\x1B[38;5;250m",
|
|
68
|
-
lightblue: "\x1B[38;5;220m"
|
|
69
|
-
}, g = {
|
|
70
|
-
user: "👤 ",
|
|
71
|
-
hostname: "🏠 ",
|
|
72
|
-
ip: "🌎 ",
|
|
73
|
-
iplocal: "🌐 ",
|
|
74
|
-
city: "📍 ",
|
|
75
|
-
domain: "🔗 ",
|
|
76
|
-
isp: "👮 ",
|
|
77
|
-
os: "⚡ ",
|
|
78
|
-
cpu: "📈 ",
|
|
79
|
-
gpu: "🎮 ",
|
|
80
|
-
device: "💻 ",
|
|
81
|
-
kernel: "🔧 ",
|
|
82
|
-
shell: "🐚 ",
|
|
83
|
-
pacman: "🚀 ",
|
|
84
|
-
disk_used: "📁 ",
|
|
85
|
-
ram_used: "💾 ",
|
|
86
|
-
top_process: "🔝 ",
|
|
87
|
-
uptime: "⏱️ ",
|
|
88
|
-
ports: "🔌 ",
|
|
89
|
-
containers: "📦",
|
|
90
|
-
memory_available: "🧠 ",
|
|
91
|
-
swap_used: "🔄 ",
|
|
92
|
-
load_average: "⚖️ ",
|
|
93
|
-
users_logged_in: "👥 ",
|
|
94
|
-
network_interfaces: "🌐 ",
|
|
95
|
-
mount_points: "📂 ",
|
|
96
|
-
services_running: "⚙️ ",
|
|
97
|
-
temperature: "🌡️ ",
|
|
98
|
-
battery_charging: "🔌 ",
|
|
99
|
-
battery: "🔋 ",
|
|
100
|
-
screen_resolution: "🖥️ "
|
|
101
|
-
}, y = d.platform() === "win32";
|
|
102
|
-
function C() {
|
|
103
|
-
try {
|
|
104
|
-
if (o.existsSync(h)) {
|
|
105
|
-
const e = JSON.parse(o.readFileSync(h, "utf8"));
|
|
106
|
-
return { ..._, ...e };
|
|
107
|
-
}
|
|
108
|
-
} catch {
|
|
109
|
-
}
|
|
110
|
-
return _;
|
|
111
|
-
}
|
|
112
|
-
function w(e) {
|
|
113
|
-
try {
|
|
114
|
-
const s = a.dirname(h);
|
|
115
|
-
return o.existsSync(s) || o.mkdirSync(s, { recursive: !0 }), o.writeFileSync(h, JSON.stringify(e, null, 2)), !0;
|
|
116
|
-
} catch {
|
|
117
|
-
return !1;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
function j(e, s, t) {
|
|
2
|
+
import p from "os";
|
|
3
|
+
import i from "fs";
|
|
4
|
+
import u from "path";
|
|
5
|
+
import { fileURLToPath as x } from "url";
|
|
6
|
+
import { g as $, a as C, b as y, C as S, S as I, c as g, D as w } from "./system-info-api-DAF2cjeE.js";
|
|
7
|
+
const L = x(import.meta.url), d = p.platform() === "win32";
|
|
8
|
+
function b(e, s, o) {
|
|
121
9
|
if (!s || s.trim() === "") return "";
|
|
122
|
-
const
|
|
123
|
-
if (e === "battery" &&
|
|
124
|
-
const
|
|
125
|
-
return `${
|
|
10
|
+
const a = g[o.colors[e]] || g.reset, n = o.display.show_emojis && o.emojis[e] || "";
|
|
11
|
+
if (e === "battery" && o.display.show_emojis) {
|
|
12
|
+
const t = s.includes("+") ? o.emojis.battery_charging : o.emojis.battery;
|
|
13
|
+
return `${a}${t}${s}`;
|
|
126
14
|
}
|
|
127
|
-
if (e === "ports" &&
|
|
128
|
-
let c = ` ${
|
|
15
|
+
if (e === "ports" && o.colors[e] === "multicolor" && s) {
|
|
16
|
+
let c = ` ${o.display.show_emojis ? o.emojis.ports : ""}`;
|
|
129
17
|
const r = s.split(" "), l = [31, 32, 33, 34, 35, 36];
|
|
130
18
|
return r.forEach((f, m) => {
|
|
131
|
-
const
|
|
132
|
-
c += `\x1B[${
|
|
19
|
+
const h = l[m % l.length];
|
|
20
|
+
c += `\x1B[${h}m${f}\x1B[0m `;
|
|
133
21
|
}), c.trim();
|
|
134
22
|
}
|
|
135
|
-
if (e === "pacman" &&
|
|
136
|
-
const
|
|
137
|
-
return `${
|
|
23
|
+
if (e === "pacman" && o.colors[e] === "multicolor" && s) {
|
|
24
|
+
const t = o.display.show_emojis ? o.emojis.pacman : "";
|
|
25
|
+
return `${a}${t}${s}`;
|
|
138
26
|
}
|
|
139
|
-
return `${
|
|
27
|
+
return `${a}${n}${s}`;
|
|
140
28
|
}
|
|
141
|
-
function
|
|
29
|
+
function _(e) {
|
|
142
30
|
return e.replace(/\x1b\[[0-9;]*m/g, "");
|
|
143
31
|
}
|
|
144
|
-
async function
|
|
145
|
-
const s = C(),
|
|
32
|
+
async function j(e = null) {
|
|
33
|
+
const s = C(), o = e || s.display_order, a = await $();
|
|
146
34
|
if (s.display.single_line) {
|
|
147
35
|
const r = [];
|
|
148
|
-
for (const l of
|
|
36
|
+
for (const l of o)
|
|
149
37
|
for (const f of l) {
|
|
150
|
-
const m =
|
|
151
|
-
|
|
38
|
+
const m = a[f], h = b(f, m, s);
|
|
39
|
+
h && h.trim() && r.push(h);
|
|
152
40
|
}
|
|
153
|
-
r.length > 0 && console.log(r.join(" ") +
|
|
41
|
+
r.length > 0 && console.log(r.join(" ") + g.reset);
|
|
154
42
|
return;
|
|
155
43
|
}
|
|
156
|
-
const
|
|
157
|
-
let
|
|
44
|
+
const n = [];
|
|
45
|
+
let t = "";
|
|
158
46
|
const c = s.display.line_wrap_length;
|
|
159
|
-
for (const r of
|
|
47
|
+
for (const r of o)
|
|
160
48
|
for (const l of r) {
|
|
161
|
-
const f =
|
|
49
|
+
const f = a[l], m = b(l, f, s);
|
|
162
50
|
if (m && m.trim()) {
|
|
163
|
-
const
|
|
164
|
-
|
|
51
|
+
const h = _(m).length, F = _(t).length;
|
|
52
|
+
t && F + h + 1 > c ? (n.push(t), t = m) : t = t ? `${t} ${m}` : m;
|
|
165
53
|
}
|
|
166
54
|
}
|
|
167
|
-
|
|
168
|
-
console.log(r +
|
|
55
|
+
t && n.push(t), n.length > 0 ? n.forEach((r) => {
|
|
56
|
+
console.log(r + g.reset);
|
|
169
57
|
}) : s.advanced.debug && console.log("No system information could be displayed");
|
|
170
58
|
}
|
|
171
|
-
function
|
|
59
|
+
function E(e) {
|
|
172
60
|
const s = C();
|
|
173
61
|
if (e.includes("--settings-init"))
|
|
174
|
-
return w
|
|
62
|
+
return y(w) ? console.log("Settings initialized with defaults") : console.log("Failed to initialize settings"), !0;
|
|
175
63
|
if (e.includes("--settings-show"))
|
|
176
64
|
return console.log("Current settings:"), console.log(JSON.stringify(s, null, 2)), !0;
|
|
177
65
|
if (e.includes("--settings-reset"))
|
|
178
|
-
return w
|
|
66
|
+
return y(w) ? console.log("Settings reset to defaults") : console.log("Failed to reset settings"), !0;
|
|
179
67
|
if (e.includes("--refresh")) {
|
|
180
68
|
try {
|
|
181
|
-
|
|
182
|
-
} catch (
|
|
183
|
-
console.error("Error clearing cache:",
|
|
69
|
+
i.existsSync(S) && (i.unlinkSync(S), console.log("Cache cleared"));
|
|
70
|
+
} catch (a) {
|
|
71
|
+
console.error("Error clearing cache:", a.message);
|
|
184
72
|
}
|
|
185
73
|
return !0;
|
|
186
74
|
}
|
|
187
|
-
const
|
|
188
|
-
if (
|
|
189
|
-
const
|
|
75
|
+
const o = e.indexOf("--set");
|
|
76
|
+
if (o !== -1 && e[o + 1] && e[o + 2]) {
|
|
77
|
+
const a = e[o + 1], n = e[o + 2];
|
|
190
78
|
try {
|
|
191
|
-
const
|
|
79
|
+
const t = n.startsWith("{") || n.startsWith("[") ? JSON.parse(n) : n, c = a.split(".");
|
|
192
80
|
let r = s;
|
|
193
81
|
for (let l = 0; l < c.length - 1; l++)
|
|
194
82
|
r[c[l]] || (r[c[l]] = {}), r = r[c[l]];
|
|
195
|
-
r[c[c.length - 1]] =
|
|
196
|
-
} catch (
|
|
197
|
-
console.error("Error setting value:",
|
|
83
|
+
r[c[c.length - 1]] = t, y(s) ? console.log(`Setting ${a} = ${n}`) : console.log("Failed to save settings");
|
|
84
|
+
} catch (t) {
|
|
85
|
+
console.error("Error setting value:", t.message);
|
|
198
86
|
}
|
|
199
87
|
return !0;
|
|
200
88
|
}
|
|
201
89
|
return !1;
|
|
202
90
|
}
|
|
203
|
-
function
|
|
204
|
-
const e =
|
|
205
|
-
let s,
|
|
206
|
-
|
|
207
|
-
const
|
|
91
|
+
function P() {
|
|
92
|
+
const e = p.homedir();
|
|
93
|
+
let s, o;
|
|
94
|
+
d ? (s = u.join(e, "AppData", "Local"), o = u.join(s, "systeminfo")) : (s = u.join(e, ".config"), o = u.join(s, "systeminfo"));
|
|
95
|
+
const a = u.resolve(L);
|
|
208
96
|
try {
|
|
209
|
-
if (
|
|
210
|
-
console.log("Windows installation:"), console.log("1. Script copied to:",
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
97
|
+
if (i.existsSync(s) || i.mkdirSync(s, { recursive: !0 }), i.copyFileSync(a, o), d || i.chmodSync(o, "755"), d) {
|
|
98
|
+
console.log("Windows installation:"), console.log("1. Script copied to:", o), console.log("2. To add to PowerShell profile, run:"), console.log(` Add-Content $PROFILE "node '${o}'"`), console.log(
|
|
99
|
+
"3. To add to Command Prompt, create a batch file in your startup folder"
|
|
100
|
+
);
|
|
101
|
+
const n = u.join(s, "systeminfo-startup.bat");
|
|
102
|
+
i.writeFileSync(n, `@echo off
|
|
103
|
+
node "${o}"
|
|
104
|
+
`), console.log("4. Batch file created:", n);
|
|
215
105
|
} else {
|
|
216
106
|
try {
|
|
217
|
-
const f =
|
|
218
|
-
|
|
107
|
+
const f = u.join(e, ".hushlogin");
|
|
108
|
+
i.writeFileSync(f, "");
|
|
219
109
|
} catch {
|
|
220
110
|
}
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
${
|
|
224
|
-
`) :
|
|
111
|
+
const n = u.join(e, ".bashrc"), t = `node ${o}`;
|
|
112
|
+
i.existsSync(n) ? i.readFileSync(n, "utf8").includes("systeminfo") || i.appendFileSync(n, `
|
|
113
|
+
${t}
|
|
114
|
+
`) : i.writeFileSync(n, `${t}
|
|
225
115
|
`);
|
|
226
|
-
const c =
|
|
227
|
-
|
|
228
|
-
${
|
|
116
|
+
const c = u.join(e, ".zshrc");
|
|
117
|
+
i.existsSync(c) && (i.readFileSync(c, "utf8").includes("systeminfo") || i.appendFileSync(c, `
|
|
118
|
+
${t}
|
|
229
119
|
`));
|
|
230
|
-
const r =
|
|
231
|
-
|
|
120
|
+
const r = u.join(
|
|
121
|
+
e,
|
|
122
|
+
".config",
|
|
123
|
+
"fish",
|
|
124
|
+
"config.fish"
|
|
125
|
+
);
|
|
126
|
+
i.existsSync(r) && (i.readFileSync(r, "utf8").includes("systeminfo") || i.appendFileSync(
|
|
127
|
+
r,
|
|
128
|
+
`
|
|
232
129
|
set -U fish_greeting ""
|
|
233
|
-
${
|
|
234
|
-
`
|
|
235
|
-
|
|
236
|
-
|
|
130
|
+
${t}
|
|
131
|
+
`
|
|
132
|
+
));
|
|
133
|
+
const l = u.join(
|
|
134
|
+
e,
|
|
135
|
+
".config",
|
|
136
|
+
"nushell",
|
|
137
|
+
"config.nu"
|
|
138
|
+
);
|
|
139
|
+
i.existsSync(l) && (i.readFileSync(l, "utf8").includes("systeminfo") || i.appendFileSync(
|
|
140
|
+
l,
|
|
141
|
+
`
|
|
237
142
|
$env.config.show_banner = false
|
|
238
|
-
${
|
|
239
|
-
`
|
|
143
|
+
${t}
|
|
144
|
+
`
|
|
145
|
+
));
|
|
240
146
|
}
|
|
241
147
|
console.log("Shell greeting installation completed!");
|
|
242
|
-
} catch (
|
|
243
|
-
console.error("Error installing shell greeting:",
|
|
148
|
+
} catch (n) {
|
|
149
|
+
console.error("Error installing shell greeting:", n.message), process.exit(1);
|
|
244
150
|
}
|
|
245
151
|
}
|
|
246
152
|
function O(e) {
|
|
247
153
|
for (const s of e)
|
|
248
154
|
if (!s.startsWith("--") && s.includes(","))
|
|
249
|
-
return s.split(",").map((
|
|
155
|
+
return s.split(",").map((o) => o.trim()).filter((o) => o.length > 0);
|
|
250
156
|
for (const s of e)
|
|
251
157
|
if (!s.startsWith("--") && !s.includes("=") && s.length > 0)
|
|
252
158
|
return [s.trim()];
|
|
253
159
|
return null;
|
|
254
160
|
}
|
|
255
|
-
async function
|
|
161
|
+
async function v() {
|
|
256
162
|
console.log(`
|
|
257
163
|
System Info Script - TypeScript Version
|
|
258
164
|
|
|
@@ -278,12 +184,14 @@ Examples:
|
|
|
278
184
|
about-system --install
|
|
279
185
|
about-system --set display.show_emojis false
|
|
280
186
|
about-system --set colors.user blue
|
|
187
|
+
about-system --set emojis.cpu "🚀 "
|
|
188
|
+
about-system --set labels.cpu "Processor"
|
|
281
189
|
about-system --json
|
|
282
190
|
|
|
283
|
-
Settings file: ${
|
|
284
|
-
Cache file: ${
|
|
191
|
+
Settings file: ${I}
|
|
192
|
+
Cache file: ${S}
|
|
285
193
|
|
|
286
|
-
Platform: ${
|
|
194
|
+
Platform: ${d ? "Windows" : p.platform() === "darwin" ? "macOS" : p.platform() === "linux" ? "Linux" : "Unknown"}
|
|
287
195
|
|
|
288
196
|
Available display blocks:
|
|
289
197
|
Basic: user, hostname, uptime, shell, os, kernel, device
|
|
@@ -294,35 +202,35 @@ Available display blocks:
|
|
|
294
202
|
Tools: pacman, ports, containers
|
|
295
203
|
`);
|
|
296
204
|
}
|
|
297
|
-
async function
|
|
205
|
+
async function T() {
|
|
298
206
|
const e = process.argv.slice(2);
|
|
299
|
-
if (
|
|
207
|
+
if (E(e))
|
|
300
208
|
return;
|
|
301
209
|
if (e.includes("--help") || e.includes("-h")) {
|
|
302
|
-
await
|
|
210
|
+
await v();
|
|
303
211
|
return;
|
|
304
212
|
}
|
|
305
213
|
if (e.includes("--install")) {
|
|
306
|
-
|
|
214
|
+
P();
|
|
307
215
|
return;
|
|
308
216
|
}
|
|
309
217
|
if (e.includes("--json")) {
|
|
310
|
-
const
|
|
311
|
-
console.log(JSON.stringify(
|
|
218
|
+
const o = await $();
|
|
219
|
+
console.log(JSON.stringify(o, null, 2));
|
|
312
220
|
return;
|
|
313
221
|
}
|
|
314
222
|
const s = O(e);
|
|
315
223
|
if (s) {
|
|
316
|
-
await
|
|
224
|
+
await j([s]);
|
|
317
225
|
return;
|
|
318
226
|
}
|
|
319
|
-
await
|
|
227
|
+
await j();
|
|
320
228
|
}
|
|
321
|
-
|
|
229
|
+
T().catch((e) => {
|
|
322
230
|
console.error("Error:", e.message), process.exit(1);
|
|
323
231
|
});
|
|
324
232
|
export {
|
|
325
|
-
|
|
326
|
-
|
|
233
|
+
j as displaySystemInfo,
|
|
234
|
+
P as installShellGreeting
|
|
327
235
|
};
|
|
328
236
|
//# sourceMappingURL=about-system-cli.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"about-system-cli.js","sources":["../src/about-system-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport os from 'os';\nimport fs from 'fs';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\nimport { getSystemInfo } from './system-info-api.js';\nimport type { SystemInfo, SystemInfoOptions } from './systeminfo-types.js';\n\nconst __filename = fileURLToPath(import.meta.url);\n\n// Settings configuration\nconst SETTINGS_FILE = path.join(os.homedir(), '.config', 'systeminfo-settings.json');\nconst CACHE_FILE = path.join(os.tmpdir(), 'systeminfo-cache.json');\n\n// Default settings\nconst DEFAULT_SETTINGS = {\n display_order: [\n ['user', 'hostname', 'os', 'device', 'kernel', 'cpu', 'gpu'],\n ['disk_used', 'ram_used', 'top_process', 'uptime', 'temperature', 'battery', 'load_average'],\n ['ip', 'iplocal', 'city', 'domain', 'isp'],\n ['shell', 'pacman', 'services_running', 'containers'],\n ],\n colors: {\n user: 'red',\n hostname: 'orange',\n disk_used: 'purple',\n ram_used: 'yellow',\n top_process: 'magenta',\n uptime: 'cyan',\n ip: 'green',\n iplocal: 'yellow',\n city: 'green',\n domain: 'gray',\n isp: 'lightblue',\n os: 'gray',\n cpu: 'orange',\n gpu: 'yellow',\n device: 'yellow',\n kernel: 'green',\n shell: 'orange',\n pacman: 'multicolor',\n ports: 'multicolor',\n containers: 'green',\n memory_available: 'blue',\n swap_used: 'purple',\n load_average: 'red',\n users_logged_in: 'cyan',\n network_interfaces: 'yellow',\n mount_points: 'gray',\n services_running: 'green',\n temperature: 'red',\n battery: 'green',\n screen_resolution: 'blue',\n },\n display: {\n show_emojis: true,\n single_line: false,\n line_wrap_length: process?.stdout?.columns || 100,\n },\n network: {\n show_offline_message: true,\n },\n advanced: {\n debug: false,\n },\n};\n\n// Color codes\nconst colors = {\n reset: '\\x1b[0m',\n red: '\\x1b[38;5;196m',\n orange: '\\x1b[38;5;208m',\n yellow: '\\x1b[38;5;226m',\n green: '\\x1b[38;5;46m',\n blue: '\\x1b[38;5;39m',\n cyan: '\\x1b[38;5;51m',\n purple: '\\x1b[38;5;171m',\n magenta: '\\x1b[38;5;213m',\n gray: '\\x1b[38;5;250m',\n lightblue: '\\x1b[38;5;220m',\n};\n\n// Emoji mappings\nconst emojis: Record<string, string> = {\n user: '👤 ',\n hostname: '🏠 ',\n ip: '🌎 ',\n iplocal: '🌐 ',\n city: '📍 ',\n domain: '🔗 ',\n isp: '👮 ',\n os: '⚡ ',\n cpu: '📈 ',\n gpu: '🎮 ',\n device: '💻 ',\n kernel: '🔧 ',\n shell: '🐚 ',\n pacman: '🚀 ',\n disk_used: '📁 ',\n ram_used: '💾 ',\n top_process: '🔝 ',\n uptime: '⏱️ ',\n ports: '🔌 ',\n containers: '📦',\n memory_available: '🧠 ',\n swap_used: '🔄 ',\n load_average: '⚖️ ',\n users_logged_in: '👥 ',\n network_interfaces: '🌐 ',\n mount_points: '📂 ',\n services_running: '⚙️ ',\n temperature: '🌡️ ',\n battery_charging: '🔌 ',\n battery: '🔋 ',\n screen_resolution: '🖥️ ',\n};\n\n// Platform detection\nconst IS_WINDOWS = os.platform() === 'win32';\n\ninterface Settings {\n display_order: string[][];\n colors: Record<string, string>;\n display: {\n show_emojis: boolean;\n single_line: boolean;\n line_wrap_length: number;\n };\n network: {\n show_offline_message: boolean;\n };\n advanced: {\n debug: boolean;\n };\n}\n\nfunction loadSettings(): Settings {\n try {\n if (fs.existsSync(SETTINGS_FILE)) {\n const settings = JSON.parse(fs.readFileSync(SETTINGS_FILE, 'utf8'));\n return { ...DEFAULT_SETTINGS, ...settings };\n }\n } catch {}\n return DEFAULT_SETTINGS;\n}\n\nfunction saveSettings(settings: Settings): boolean {\n try {\n const configDir = path.dirname(SETTINGS_FILE);\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n fs.writeFileSync(SETTINGS_FILE, JSON.stringify(settings, null, 2));\n return true;\n } catch {\n return false;\n }\n}\n\nfunction formatValue(key: string, value: string, settings: Settings): string {\n if (!value || value.trim() === '') return '';\n\n const color = colors[settings.colors[key] as keyof typeof colors] || colors.reset;\n const emoji = settings.display.show_emojis ? emojis[key] || '' : '';\n\n // Special handling for battery emoji\n if (key === 'battery' && settings.display.show_emojis) {\n const batteryEmoji = value.includes('+') ? emojis.battery_charging : emojis.battery;\n return `${color}${batteryEmoji}${value}`;\n }\n\n // Multicolor handling for ports\n if (key === 'ports' && settings.colors[key] === 'multicolor' && value) {\n const emoji = settings.display.show_emojis ? emojis.ports : '';\n let output = ` ${emoji}`;\n const ports = value.split(' ');\n const colorCodes = [31, 32, 33, 34, 35, 36];\n ports.forEach((port, index) => {\n const colorCode = colorCodes[index % colorCodes.length];\n output += `\\x1b[${colorCode}m${port}\\x1b[0m `;\n });\n return output.trim();\n }\n\n // Multicolor handling for pacman\n if (key === 'pacman' && settings.colors[key] === 'multicolor' && value) {\n const emoji = settings.display.show_emojis ? emojis.pacman : '';\n return `${color}${emoji}${value}`;\n }\n\n return `${color}${emoji}${value}`;\n}\n\nfunction removeAnsiCodes(str: string): string {\n return str.replace(/\\x1b\\[[0-9;]*m/g, '');\n}\n\nasync function displaySystemInfo(customDisplayOrder: string[][] | null = null): Promise<void> {\n const settings = loadSettings();\n const displayOrder = customDisplayOrder || settings.display_order;\n\n // Get system info\n const info = await getSystemInfo();\n\n // Single line mode\n if (settings.display.single_line) {\n const allItems: string[] = [];\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n if (formatted && formatted.trim()) {\n allItems.push(formatted);\n }\n }\n }\n\n if (allItems.length > 0) {\n console.log(allItems.join(' ') + colors.reset);\n }\n return;\n }\n\n // Multi-line mode with intelligent wrapping\n const lines: string[] = [];\n let currentLine = '';\n const maxLineLength = settings.display.line_wrap_length;\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n\n if (formatted && formatted.trim()) {\n const formattedLength = removeAnsiCodes(formatted).length;\n const currentLineLength = removeAnsiCodes(currentLine).length;\n\n if (currentLine && currentLineLength + formattedLength + 1 > maxLineLength) {\n lines.push(currentLine);\n currentLine = formatted;\n } else {\n currentLine = currentLine ? `${currentLine} ${formatted}` : formatted;\n }\n }\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n // Output\n if (lines.length > 0) {\n lines.forEach((line) => {\n console.log(line + colors.reset);\n });\n } else if (settings.advanced.debug) {\n console.log('No system information could be displayed');\n }\n}\n\nfunction handleSettingsCommand(args: string[]): boolean {\n const settings = loadSettings();\n\n if (args.includes('--settings-init')) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log('Settings initialized with defaults');\n } else {\n console.log('Failed to initialize settings');\n }\n return true;\n }\n\n if (args.includes('--settings-show')) {\n console.log('Current settings:');\n console.log(JSON.stringify(settings, null, 2));\n return true;\n }\n\n if (args.includes('--settings-reset')) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log('Settings reset to defaults');\n } else {\n console.log('Failed to reset settings');\n }\n return true;\n }\n\n if (args.includes('--refresh')) {\n try {\n if (fs.existsSync(CACHE_FILE)) {\n fs.unlinkSync(CACHE_FILE);\n console.log('Cache cleared');\n }\n } catch (error) {\n console.error('Error clearing cache:', (error as Error).message);\n }\n return true;\n }\n\n const setIndex = args.indexOf('--set');\n if (setIndex !== -1 && args[setIndex + 1] && args[setIndex + 2]) {\n const key = args[setIndex + 1];\n const value = args[setIndex + 2];\n\n try {\n const parsedValue = value.startsWith('{') || value.startsWith('[') ? JSON.parse(value) : value;\n\n const keys = key.split('.');\n let current: any = settings;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!current[keys[i]]) current[keys[i]] = {};\n current = current[keys[i]];\n }\n current[keys[keys.length - 1]] = parsedValue;\n\n if (saveSettings(settings)) {\n console.log(`Setting ${key} = ${value}`);\n } else {\n console.log('Failed to save settings');\n }\n } catch (error) {\n console.error('Error setting value:', (error as Error).message);\n }\n return true;\n }\n\n return false;\n}\n\nfunction installShellGreeting(): void {\n const homeDir = os.homedir();\n\n let configDir: string, scriptPath: string;\n if (IS_WINDOWS) {\n configDir = path.join(homeDir, 'AppData', 'Local');\n scriptPath = path.join(configDir, 'systeminfo.js');\n } else {\n configDir = path.join(homeDir, '.config');\n scriptPath = path.join(configDir, 'systeminfo.js');\n }\n\n const currentScript = path.resolve(__filename);\n\n try {\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n\n fs.copyFileSync(currentScript, scriptPath);\n if (!IS_WINDOWS) {\n fs.chmodSync(scriptPath, '755');\n }\n\n if (IS_WINDOWS) {\n console.log('Windows installation:');\n console.log('1. Script copied to:', scriptPath);\n console.log('2. To add to PowerShell profile, run:');\n console.log(` Add-Content $PROFILE \"node '${scriptPath}'\"`);\n console.log('3. To add to Command Prompt, create a batch file in your startup folder');\n\n const startupBat = path.join(configDir, 'systeminfo-startup.bat');\n fs.writeFileSync(startupBat, `@echo off\\nnode \"${scriptPath}\"\\n`);\n console.log('4. Batch file created:', startupBat);\n } else {\n try {\n const hushLoginPath = path.join(homeDir, '.hushlogin');\n fs.writeFileSync(hushLoginPath, '');\n } catch {}\n\n const bashrcPath = path.join(homeDir, '.bashrc');\n const bashLine = `node ${scriptPath}`;\n\n if (fs.existsSync(bashrcPath)) {\n const bashrc = fs.readFileSync(bashrcPath, 'utf8');\n if (!bashrc.includes('systeminfo.js')) {\n fs.appendFileSync(bashrcPath, `\\n${bashLine}\\n`);\n }\n } else {\n fs.writeFileSync(bashrcPath, `${bashLine}\\n`);\n }\n\n const zshrcPath = path.join(homeDir, '.zshrc');\n if (fs.existsSync(zshrcPath)) {\n const zshrc = fs.readFileSync(zshrcPath, 'utf8');\n if (!zshrc.includes('systeminfo.js')) {\n fs.appendFileSync(zshrcPath, `\\n${bashLine}\\n`);\n }\n }\n\n const fishConfigPath = path.join(homeDir, '.config', 'fish', 'config.fish');\n if (fs.existsSync(fishConfigPath)) {\n const fishConfig = fs.readFileSync(fishConfigPath, 'utf8');\n if (!fishConfig.includes('systeminfo.js')) {\n fs.appendFileSync(fishConfigPath, `\\nset -U fish_greeting \"\"\\n${bashLine}\\n`);\n }\n }\n\n const nushellConfigPath = path.join(homeDir, '.config', 'nushell', 'config.nu');\n if (fs.existsSync(nushellConfigPath)) {\n const nushellConfig = fs.readFileSync(nushellConfigPath, 'utf8');\n if (!nushellConfig.includes('systeminfo.js')) {\n fs.appendFileSync(nushellConfigPath, `\\n$env.config.show_banner = false\\n${bashLine}\\n`);\n }\n }\n }\n\n console.log('Shell greeting installation completed!');\n } catch (error) {\n console.error('Error installing shell greeting:', (error as Error).message);\n process.exit(1);\n }\n}\n\nfunction parseCLIMode(args: string[]): string[] | null {\n for (const arg of args) {\n if (!arg.startsWith('--') && arg.includes(',')) {\n return arg\n .split(',')\n .map((part) => part.trim())\n .filter((part) => part.length > 0);\n }\n }\n\n for (const arg of args) {\n if (!arg.startsWith('--') && !arg.includes('=') && arg.length > 0) {\n return [arg.trim()];\n }\n }\n\n return null;\n}\n\nasync function showHelp(): Promise<void> {\n console.log(`\nSystem Info Script - TypeScript Version\n\nUsage:\n about-system [options]\n about-system <part1,part2,...> # CLI mode: show specific parts only\n\nOptions:\n --help, -h Show this help message\n --install Install as shell greeting\n --settings-init Initialize settings file with defaults\n --settings-show Display current settings\n --settings-reset Reset settings to defaults\n --refresh Clear the cache file\n --set <key> <value> Set a configuration value (use dot notation)\n --json Output as JSON\n\nExamples:\n about-system # Show all info (default)\n about-system cpu,os # Show only CPU and OS info\n about-system user,hostname,ip # Show user, hostname, and IP\n about-system disk_used # Show only disk usage\n about-system --install\n about-system --set display.show_emojis false\n about-system --set colors.user blue\n about-system --json\n\nSettings file: ${SETTINGS_FILE}\nCache file: ${CACHE_FILE}\n\nPlatform: ${IS_WINDOWS ? 'Windows' : os.platform() === 'darwin' ? 'macOS' : os.platform() === 'linux' ? 'Linux' : 'Unknown'}\n\nAvailable display blocks:\n Basic: user, hostname, uptime, shell, os, kernel, device\n Resources: disk_used, ram_used, memory_available, swap_used, top_process\n Network: ip, iplocal, city, domain, isp, network_interfaces\n Hardware: cpu, gpu, temperature, battery, screen_resolution\n System: load_average, users_logged_in, mount_points, services_running\n Tools: pacman, ports, containers\n`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n\n if (handleSettingsCommand(args)) {\n return;\n }\n\n if (args.includes('--help') || args.includes('-h')) {\n await showHelp();\n return;\n }\n\n if (args.includes('--install')) {\n installShellGreeting();\n return;\n }\n\n if (args.includes('--json')) {\n const info = await getSystemInfo();\n console.log(JSON.stringify(info, null, 2));\n return;\n }\n\n const cliParts = parseCLIMode(args);\n if (cliParts) {\n const customDisplayOrder = [cliParts];\n await displaySystemInfo(customDisplayOrder);\n return;\n }\n\n await displaySystemInfo();\n}\n\nmain().catch((error) => {\n console.error('Error:', error.message);\n process.exit(1);\n});\n\nexport { displaySystemInfo, installShellGreeting };\n"],"names":["__filename","fileURLToPath","SETTINGS_FILE","path","os","CACHE_FILE","DEFAULT_SETTINGS","colors","emojis","IS_WINDOWS","loadSettings","fs","settings","saveSettings","configDir","formatValue","key","value","color","emoji","batteryEmoji","output","ports","colorCodes","port","index","colorCode","removeAnsiCodes","str","displaySystemInfo","customDisplayOrder","displayOrder","info","getSystemInfo","allItems","group","formatted","lines","currentLine","maxLineLength","formattedLength","currentLineLength","line","handleSettingsCommand","args","error","setIndex","parsedValue","keys","current","i","installShellGreeting","homeDir","scriptPath","currentScript","startupBat","hushLoginPath","bashrcPath","bashLine","zshrcPath","fishConfigPath","nushellConfigPath","parseCLIMode","arg","part","showHelp","main","cliParts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"about-system-cli.js","sources":["../src/about-system-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport os from \"os\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport { fileURLToPath } from \"url\";\nimport { getSystemInfo } from \"./system-info-api\";\nimport type { SystemInfo, SystemInfoOptions } from \"./systeminfo-types\";\n\nconst __filename = fileURLToPath(import.meta.url);\n\nimport {\n Settings,\n DEFAULT_SETTINGS,\n colors,\n SETTINGS_FILE,\n CACHE_FILE,\n loadSettings,\n saveSettings,\n} from \"./info/settings\";\n\n// Platform detection\nconst IS_WINDOWS = os.platform() === \"win32\";\n\nfunction formatValue(key: string, value: string, settings: Settings): string {\n if (!value || value.trim() === \"\") return \"\";\n\n const color =\n colors[settings.colors[key] as keyof typeof colors] || colors.reset;\n const emoji = settings.display.show_emojis ? settings.emojis[key] || \"\" : \"\";\n\n // Special handling for battery emoji\n if (key === \"battery\" && settings.display.show_emojis) {\n const batteryEmoji = value.includes(\"+\")\n ? settings.emojis.battery_charging\n : settings.emojis.battery;\n return `${color}${batteryEmoji}${value}`;\n }\n\n // Multicolor handling for ports\n if (key === \"ports\" && settings.colors[key] === \"multicolor\" && value) {\n const emoji = settings.display.show_emojis ? settings.emojis.ports : \"\";\n let output = ` ${emoji}`;\n const ports = value.split(\" \");\n const colorCodes = [31, 32, 33, 34, 35, 36];\n ports.forEach((port, index) => {\n const colorCode = colorCodes[index % colorCodes.length];\n output += `\\x1b[${colorCode}m${port}\\x1b[0m `;\n });\n return output.trim();\n }\n\n // Multicolor handling for pacman\n if (key === \"pacman\" && settings.colors[key] === \"multicolor\" && value) {\n const emoji = settings.display.show_emojis ? settings.emojis.pacman : \"\";\n return `${color}${emoji}${value}`;\n }\n\n return `${color}${emoji}${value}`;\n}\n\nfunction removeAnsiCodes(str: string): string {\n return str.replace(/\\x1b\\[[0-9;]*m/g, \"\");\n}\n\nasync function displaySystemInfo(\n customDisplayOrder: string[][] | null = null\n): Promise<void> {\n const settings = loadSettings();\n const displayOrder = customDisplayOrder || settings.display_order;\n\n // Get system info\n const info = await getSystemInfo();\n\n // Single line mode\n if (settings.display.single_line) {\n const allItems: string[] = [];\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n if (formatted && formatted.trim()) {\n allItems.push(formatted);\n }\n }\n }\n\n if (allItems.length > 0) {\n console.log(allItems.join(\" \") + colors.reset);\n }\n return;\n }\n\n // Multi-line mode with intelligent wrapping\n const lines: string[] = [];\n let currentLine = \"\";\n const maxLineLength = settings.display.line_wrap_length;\n\n for (const group of displayOrder) {\n for (const key of group) {\n const value = info[key as keyof SystemInfo] as string;\n const formatted = formatValue(key, value, settings);\n\n if (formatted && formatted.trim()) {\n const formattedLength = removeAnsiCodes(formatted).length;\n const currentLineLength = removeAnsiCodes(currentLine).length;\n\n if (\n currentLine &&\n currentLineLength + formattedLength + 1 > maxLineLength\n ) {\n lines.push(currentLine);\n currentLine = formatted;\n } else {\n currentLine = currentLine ? `${currentLine} ${formatted}` : formatted;\n }\n }\n }\n }\n\n if (currentLine) {\n lines.push(currentLine);\n }\n\n // Output\n if (lines.length > 0) {\n lines.forEach((line) => {\n console.log(line + colors.reset);\n });\n } else if (settings.advanced.debug) {\n console.log(\"No system information could be displayed\");\n }\n}\n\nfunction handleSettingsCommand(args: string[]): boolean {\n const settings = loadSettings();\n\n if (args.includes(\"--settings-init\")) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log(\"Settings initialized with defaults\");\n } else {\n console.log(\"Failed to initialize settings\");\n }\n return true;\n }\n\n if (args.includes(\"--settings-show\")) {\n console.log(\"Current settings:\");\n console.log(JSON.stringify(settings, null, 2));\n return true;\n }\n\n if (args.includes(\"--settings-reset\")) {\n if (saveSettings(DEFAULT_SETTINGS)) {\n console.log(\"Settings reset to defaults\");\n } else {\n console.log(\"Failed to reset settings\");\n }\n return true;\n }\n\n if (args.includes(\"--refresh\")) {\n try {\n if (fs.existsSync(CACHE_FILE)) {\n fs.unlinkSync(CACHE_FILE);\n console.log(\"Cache cleared\");\n }\n } catch (error) {\n console.error(\"Error clearing cache:\", (error as Error).message);\n }\n return true;\n }\n\n const setIndex = args.indexOf(\"--set\");\n if (setIndex !== -1 && args[setIndex + 1] && args[setIndex + 2]) {\n const key = args[setIndex + 1];\n const value = args[setIndex + 2];\n\n try {\n const parsedValue =\n value.startsWith(\"{\") || value.startsWith(\"[\")\n ? JSON.parse(value)\n : value;\n\n const keys = key.split(\".\");\n let current: any = settings;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!current[keys[i]]) current[keys[i]] = {};\n current = current[keys[i]];\n }\n current[keys[keys.length - 1]] = parsedValue;\n\n if (saveSettings(settings)) {\n console.log(`Setting ${key} = ${value}`);\n } else {\n console.log(\"Failed to save settings\");\n }\n } catch (error) {\n console.error(\"Error setting value:\", (error as Error).message);\n }\n return true;\n }\n\n return false;\n}\n\nfunction installShellGreeting(): void {\n const homeDir = os.homedir();\n\n let configDir: string, scriptPath: string;\n if (IS_WINDOWS) {\n configDir = path.join(homeDir, \"AppData\", \"Local\");\n scriptPath = path.join(configDir, \"systeminfo\");\n } else {\n configDir = path.join(homeDir, \".config\");\n scriptPath = path.join(configDir, \"systeminfo\");\n }\n\n const currentScript = path.resolve(__filename);\n\n try {\n if (!fs.existsSync(configDir)) {\n fs.mkdirSync(configDir, { recursive: true });\n }\n\n fs.copyFileSync(currentScript, scriptPath);\n if (!IS_WINDOWS) {\n fs.chmodSync(scriptPath, \"755\");\n }\n\n if (IS_WINDOWS) {\n console.log(\"Windows installation:\");\n console.log(\"1. Script copied to:\", scriptPath);\n console.log(\"2. To add to PowerShell profile, run:\");\n console.log(` Add-Content $PROFILE \"node '${scriptPath}'\"`);\n console.log(\n \"3. To add to Command Prompt, create a batch file in your startup folder\"\n );\n\n const startupBat = path.join(configDir, \"systeminfo-startup.bat\");\n fs.writeFileSync(startupBat, `@echo off\\nnode \"${scriptPath}\"\\n`);\n console.log(\"4. Batch file created:\", startupBat);\n } else {\n try {\n const hushLoginPath = path.join(homeDir, \".hushlogin\");\n fs.writeFileSync(hushLoginPath, \"\");\n } catch {}\n\n const bashrcPath = path.join(homeDir, \".bashrc\");\n const bashLine = `node ${scriptPath}`;\n\n if (fs.existsSync(bashrcPath)) {\n const bashrc = fs.readFileSync(bashrcPath, \"utf8\");\n if (!bashrc.includes(\"systeminfo\")) {\n fs.appendFileSync(bashrcPath, `\\n${bashLine}\\n`);\n }\n } else {\n fs.writeFileSync(bashrcPath, `${bashLine}\\n`);\n }\n\n const zshrcPath = path.join(homeDir, \".zshrc\");\n if (fs.existsSync(zshrcPath)) {\n const zshrc = fs.readFileSync(zshrcPath, \"utf8\");\n if (!zshrc.includes(\"systeminfo\")) {\n fs.appendFileSync(zshrcPath, `\\n${bashLine}\\n`);\n }\n }\n\n const fishConfigPath = path.join(\n homeDir,\n \".config\",\n \"fish\",\n \"config.fish\"\n );\n if (fs.existsSync(fishConfigPath)) {\n const fishConfig = fs.readFileSync(fishConfigPath, \"utf8\");\n if (!fishConfig.includes(\"systeminfo\")) {\n fs.appendFileSync(\n fishConfigPath,\n `\\nset -U fish_greeting \"\"\\n${bashLine}\\n`\n );\n }\n }\n\n const nushellConfigPath = path.join(\n homeDir,\n \".config\",\n \"nushell\",\n \"config.nu\"\n );\n if (fs.existsSync(nushellConfigPath)) {\n const nushellConfig = fs.readFileSync(nushellConfigPath, \"utf8\");\n if (!nushellConfig.includes(\"systeminfo\")) {\n fs.appendFileSync(\n nushellConfigPath,\n `\\n$env.config.show_banner = false\\n${bashLine}\\n`\n );\n }\n }\n }\n\n console.log(\"Shell greeting installation completed!\");\n } catch (error) {\n console.error(\"Error installing shell greeting:\", (error as Error).message);\n process.exit(1);\n }\n}\n\nfunction parseCLIMode(args: string[]): string[] | null {\n for (const arg of args) {\n if (!arg.startsWith(\"--\") && arg.includes(\",\")) {\n return arg\n .split(\",\")\n .map((part) => part.trim())\n .filter((part) => part.length > 0);\n }\n }\n\n for (const arg of args) {\n if (!arg.startsWith(\"--\") && !arg.includes(\"=\") && arg.length > 0) {\n return [arg.trim()];\n }\n }\n\n return null;\n}\n\nasync function showHelp(): Promise<void> {\n console.log(`\nSystem Info Script - TypeScript Version\n\nUsage:\n about-system [options]\n about-system <part1,part2,...> # CLI mode: show specific parts only\n\nOptions:\n --help, -h Show this help message\n --install Install as shell greeting\n --settings-init Initialize settings file with defaults\n --settings-show Display current settings\n --settings-reset Reset settings to defaults\n --refresh Clear the cache file\n --set <key> <value> Set a configuration value (use dot notation)\n --json Output as JSON\n\nExamples:\n about-system # Show all info (default)\n about-system cpu,os # Show only CPU and OS info\n about-system user,hostname,ip # Show user, hostname, and IP\n about-system disk_used # Show only disk usage\n about-system --install\n about-system --set display.show_emojis false\n about-system --set colors.user blue\n about-system --set emojis.cpu \"🚀 \"\n about-system --set labels.cpu \"Processor\"\n about-system --json\n\nSettings file: ${SETTINGS_FILE}\nCache file: ${CACHE_FILE}\n\nPlatform: ${\n IS_WINDOWS\n ? \"Windows\"\n : os.platform() === \"darwin\"\n ? \"macOS\"\n : os.platform() === \"linux\"\n ? \"Linux\"\n : \"Unknown\"\n }\n\nAvailable display blocks:\n Basic: user, hostname, uptime, shell, os, kernel, device\n Resources: disk_used, ram_used, memory_available, swap_used, top_process\n Network: ip, iplocal, city, domain, isp, network_interfaces\n Hardware: cpu, gpu, temperature, battery, screen_resolution\n System: load_average, users_logged_in, mount_points, services_running\n Tools: pacman, ports, containers\n`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n\n if (handleSettingsCommand(args)) {\n return;\n }\n\n if (args.includes(\"--help\") || args.includes(\"-h\")) {\n await showHelp();\n return;\n }\n\n if (args.includes(\"--install\")) {\n installShellGreeting();\n return;\n }\n\n if (args.includes(\"--json\")) {\n const info = await getSystemInfo();\n console.log(JSON.stringify(info, null, 2));\n return;\n }\n\n const cliParts = parseCLIMode(args);\n if (cliParts) {\n const customDisplayOrder = [cliParts];\n await displaySystemInfo(customDisplayOrder);\n return;\n }\n\n await displaySystemInfo();\n}\n\nmain().catch((error) => {\n console.error(\"Error:\", error.message);\n process.exit(1);\n});\n\nexport { displaySystemInfo, installShellGreeting };\n"],"names":["__filename","fileURLToPath","IS_WINDOWS","os","formatValue","key","value","settings","color","colors","emoji","batteryEmoji","output","ports","colorCodes","port","index","colorCode","removeAnsiCodes","str","displaySystemInfo","customDisplayOrder","loadSettings","displayOrder","info","getSystemInfo","allItems","group","formatted","lines","currentLine","maxLineLength","formattedLength","currentLineLength","line","handleSettingsCommand","args","saveSettings","DEFAULT_SETTINGS","fs","CACHE_FILE","error","setIndex","parsedValue","keys","current","i","installShellGreeting","homeDir","configDir","scriptPath","path","currentScript","startupBat","hushLoginPath","bashrcPath","bashLine","zshrcPath","fishConfigPath","nushellConfigPath","parseCLIMode","arg","part","showHelp","SETTINGS_FILE","main","cliParts"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,11 +3,12 @@ import { GetSystemInfoFunction } from './systeminfo-types.js';
|
|
|
3
3
|
import { Platform } from './systeminfo-types.js';
|
|
4
4
|
import { PlatformAvailability } from './systeminfo-types.js';
|
|
5
5
|
import { SystemInfo } from './systeminfo-types.js';
|
|
6
|
+
import { SystemInfo as SystemInfo_2 } from './systeminfo-types';
|
|
6
7
|
import { SystemInfoOptions } from './systeminfo-types.js';
|
|
8
|
+
import { SystemInfoOptions as SystemInfoOptions_2 } from './systeminfo-types';
|
|
7
9
|
|
|
8
10
|
/**
|
|
9
11
|
* Cache storage structure
|
|
10
|
-
* @interface Cache
|
|
11
12
|
*/
|
|
12
13
|
declare interface Cache {
|
|
13
14
|
[key: string]: CacheEntry;
|
|
@@ -15,12 +16,9 @@ declare interface Cache {
|
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Represents a cached value with timestamp
|
|
18
|
-
* @interface CacheEntry
|
|
19
19
|
*/
|
|
20
20
|
declare interface CacheEntry {
|
|
21
|
-
/** The cached value */
|
|
22
21
|
value: any;
|
|
23
|
-
/** Unix timestamp when the value was cached */
|
|
24
22
|
timestamp: number;
|
|
25
23
|
}
|
|
26
24
|
|
|
@@ -28,16 +26,13 @@ export { DisplaySystemInfoFunction }
|
|
|
28
26
|
|
|
29
27
|
/**
|
|
30
28
|
* Get all system information as a clean JSON object
|
|
31
|
-
* @param options Configuration options
|
|
32
|
-
* @returns Promise resolving to SystemInfo object
|
|
33
29
|
*/
|
|
34
|
-
export declare function getSystemInfo(options?:
|
|
30
|
+
export declare function getSystemInfo(options?: SystemInfoOptions_2): Promise<SystemInfo_2>;
|
|
35
31
|
|
|
36
32
|
export { GetSystemInfoFunction }
|
|
37
33
|
|
|
38
34
|
/**
|
|
39
35
|
* Loads cache from disk
|
|
40
|
-
* @returns {Cache} Cached data or empty object if cache doesn't exist or is corrupted
|
|
41
36
|
*/
|
|
42
37
|
export declare function loadCache(): Cache;
|
|
43
38
|
|
|
@@ -47,7 +42,6 @@ export { PlatformAvailability }
|
|
|
47
42
|
|
|
48
43
|
/**
|
|
49
44
|
* Saves cache to disk
|
|
50
|
-
* @param {Cache} cache - Cache object to save
|
|
51
45
|
*/
|
|
52
46
|
export declare function saveCache(cache: Cache): void;
|
|
53
47
|
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { g as s, l as o, s as t } from "./system-info-api-DAF2cjeE.js";
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
s as getSystemInfo,
|
|
4
|
+
o as loadCache,
|
|
5
|
+
t as saveCache
|
|
6
6
|
};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
File without changes
|