1+ var os = require ( 'os' ) ;
2+
3+ var logs = [ ] ;
4+ function addLog ( str ) {
5+ logs . push ( str )
6+ }
7+
8+ var systemInfo = {
9+ platform : os . platform ( ) ,
10+ type : os . type ( ) ,
11+ arch : os . arch ( ) ,
12+ release : os . release ( ) ,
13+ version : os . version ? os . version ( ) : 'Unknown' ,
14+ hostname : os . hostname ( ) ,
15+ homedir : os . homedir ( ) ,
16+ tmpdir : os . tmpdir ( ) ,
17+ endianness : os . endianness ( ) ,
18+ } ;
19+
20+ addLog ( '💻 SYSTEM:' ) ;
21+ addLog ( ` Platform: ${ systemInfo . platform } ` ) ;
22+ addLog ( ` Type: ${ systemInfo . type } ` ) ;
23+ addLog ( ` Architecture: ${ systemInfo . arch } ` ) ;
24+ addLog ( ` Release: ${ systemInfo . release } ` ) ;
25+ addLog ( ` Hostname: ${ systemInfo . hostname } ` ) ;
26+
27+
28+ var cpus = os . cpus ( ) ;
29+ var loadAvg = os . loadavg ( ) ;
30+
31+ var cpuInfo = {
32+ model : cpus [ 0 ] . model ,
33+ speed : cpus [ 0 ] . speed ,
34+ cores : cpus . length ,
35+ loadAverage : loadAvg ,
36+ cpuDetails : cpus
37+ } ;
38+
39+ addLog ( '' ) ;
40+ addLog ( '🔧 CPU:' ) ;
41+ addLog ( ` Model: ${ cpuInfo . model } ` ) ;
42+ addLog ( ` Speed: ${ cpuInfo . speed } MHz` ) ;
43+ addLog ( ` Cores: ${ cpuInfo . cores } ${ cpuInfo . physicalCores ? ` (${ cpuInfo . physicalCores } physical)` : '' } ` ) ;
44+ addLog ( ` Load Average: ${ loadAvg . map ( load => load . toFixed ( 2 ) ) . join ( ', ' ) } ` ) ;
45+
46+
47+ var totalMem = os . totalmem ( ) ;
48+ var freeMem = os . freemem ( ) ;
49+ var usedMem = totalMem - freeMem ;
50+
51+ var memoryInfo = {
52+ total : totalMem ,
53+ free : freeMem ,
54+ used : usedMem ,
55+ usagePercent : ( usedMem / totalMem ) * 100
56+ } ;
57+
58+ function formatBytes ( bytes , decimals = 2 ) {
59+ if ( bytes === 0 ) return '0 Bytes' ;
60+ if ( ! bytes ) return 'Unknown' ;
61+
62+ var k = 1024 ;
63+ var dm = decimals < 0 ? 0 : decimals ;
64+ var sizes = [ 'Bytes' , 'KB' , 'MB' , 'GB' , 'TB' , 'PB' ] ;
65+ var i = Math . floor ( Math . log ( bytes ) / Math . log ( k ) ) ;
66+
67+ return parseFloat ( ( bytes / Math . pow ( k , i ) ) . toFixed ( dm ) ) + ' ' + sizes [ i ] ;
68+ }
69+
70+ addLog ( '' ) ;
71+ addLog ( '💾 MEMORY:' ) ;
72+ addLog ( ` Total: ${ formatBytes ( memoryInfo . total ) } ` ) ;
73+ addLog ( ` Used: ${ formatBytes ( memoryInfo . used ) } (${ memoryInfo . usagePercent . toFixed ( 1 ) } %)` ) ;
74+ addLog ( ` Free: ${ formatBytes ( memoryInfo . free ) } ` ) ;
75+
76+
77+ console . log ( logs . join ( '\n' ) ) ;
0 commit comments