forked from xxq250/Nasal-Interpreter
📝 update scripts
This commit is contained in:
+39
-38
@@ -1,3 +1,4 @@
|
||||
use std.coroutine;
|
||||
use std.process_bar;
|
||||
use module.libkey;
|
||||
use std.runtime;
|
||||
@@ -5,12 +6,12 @@ use std.runtime;
|
||||
var is_windows_platform=os.platform()=="windows";
|
||||
var is_macos_platform=os.platform()=="macOS";
|
||||
|
||||
if(is_windows_platform){
|
||||
if (is_windows_platform) {
|
||||
system("chcp 65001");
|
||||
}
|
||||
|
||||
var cpu_stat=func(){
|
||||
if(is_windows_platform or is_macos_platform)
|
||||
var cpu_stat = func() {
|
||||
if (is_windows_platform or is_macos_platform)
|
||||
return nil;
|
||||
var cpu=split("\n",io.readfile("/proc/stat"))[0];
|
||||
cpu=split(" ",cpu);
|
||||
@@ -27,21 +28,21 @@ var cpu_stat=func(){
|
||||
return cpu;
|
||||
}
|
||||
|
||||
var cpu_occupation=func(){
|
||||
var cpu_occupation = func() {
|
||||
var first_in=1;
|
||||
while(1){
|
||||
while(1) {
|
||||
var cpu0=cpu_stat();
|
||||
if(first_in){
|
||||
if (first_in) {
|
||||
unix.sleep(0.1);
|
||||
first_in=0;
|
||||
}else{
|
||||
for(var i=0;i<10;i+=1){
|
||||
} else {
|
||||
for(var i=0;i<10;i+=1) {
|
||||
unix.sleep(0.1);
|
||||
coroutine.yield(nil);
|
||||
}
|
||||
}
|
||||
var cpu1=cpu_stat();
|
||||
if(is_windows_platform or is_macos_platform){
|
||||
if (is_windows_platform or is_macos_platform) {
|
||||
coroutine.yield(0);
|
||||
continue;
|
||||
}
|
||||
@@ -52,12 +53,12 @@ var cpu_occupation=func(){
|
||||
}
|
||||
}
|
||||
|
||||
var mem_occupation=func(){
|
||||
if(is_windows_platform or is_macos_platform)
|
||||
var mem_occupation = func() {
|
||||
if (is_windows_platform or is_macos_platform)
|
||||
return {MemTotal:math.inf,MemFree:math.inf};
|
||||
var meminfo=split("\n",io.readfile("/proc/meminfo"));
|
||||
var mem_res={};
|
||||
forindex(var i;meminfo){
|
||||
forindex(var i;meminfo) {
|
||||
var tmp=split(" ",meminfo[i])[0:1];
|
||||
tmp[0]=substr(tmp[0],0,size(tmp[0])-1);
|
||||
mem_res[tmp[0]]=num(tmp[1]);
|
||||
@@ -65,33 +66,33 @@ var mem_occupation=func(){
|
||||
return mem_res;
|
||||
}
|
||||
|
||||
var random_generator=func(){
|
||||
var random_generator = func() {
|
||||
var rise=[" ","▁","▂","▃","▄","▅","▆","▇","█"];
|
||||
var total=0;
|
||||
var statistics=[];
|
||||
setsize(statistics,70);
|
||||
while(1){
|
||||
for(var i=0;i<10;i+=1){
|
||||
while(1) {
|
||||
for(var i=0;i<10;i+=1) {
|
||||
total+=1;
|
||||
var u=rand()*rand()*(rand()>0.5?-1:1);
|
||||
statistics[int(size(statistics)/2+u*size(statistics)/2)]+=1;
|
||||
}
|
||||
var s=["","",""];
|
||||
foreach(var st;statistics){
|
||||
foreach(var st;statistics) {
|
||||
var max_rate=100/size(statistics);
|
||||
var rate=st/total*100;
|
||||
for(var i=size(s)-1;i>=0;i-=1){
|
||||
if(rate>=max_rate){
|
||||
for(var i=size(s)-1;i>=0;i-=1) {
|
||||
if (rate>=max_rate) {
|
||||
s[i]~="█";
|
||||
rate-=max_rate;
|
||||
}else{
|
||||
} else {
|
||||
s[i]~=rise[rate/max_rate*size(rise)];
|
||||
rate=0;
|
||||
}
|
||||
}
|
||||
}
|
||||
var tmp="";
|
||||
for(var i=0;i<size(statistics);i+=1){
|
||||
for(var i=0;i<size(statistics);i+=1) {
|
||||
tmp~="-";
|
||||
}
|
||||
println("\e[16;1H \e[32m|",s[0],"|\e[0m");
|
||||
@@ -102,11 +103,11 @@ var random_generator=func(){
|
||||
}
|
||||
}
|
||||
|
||||
func(){
|
||||
func() {
|
||||
var limited_loop=(size(runtime.argv())!=0 and !math.isnan(num(runtime.argv()[0])));
|
||||
if(limited_loop){
|
||||
if (limited_loop) {
|
||||
limited_loop=num(runtime.argv()[0]);
|
||||
}else{
|
||||
} else {
|
||||
limited_loop=-1;
|
||||
}
|
||||
|
||||
@@ -122,28 +123,28 @@ func(){
|
||||
|
||||
var bar=process_bar.high_resolution_bar(48);
|
||||
print("\ec");
|
||||
while(limited_loop!=0){
|
||||
while(limited_loop!=0) {
|
||||
limited_loop=limited_loop<0?limited_loop:limited_loop-1;
|
||||
var mem=mem_occupation();
|
||||
var mem_occ=(mem.MemTotal-mem.MemFree)/mem.MemTotal*100;
|
||||
if(math.isnan(mem_occ) or mem_occ<0 or mem_occ>100){
|
||||
if (math.isnan(mem_occ) or mem_occ<0 or mem_occ>100) {
|
||||
mem_occ=0;
|
||||
}
|
||||
var cpu_occ=nil;
|
||||
while((cpu_occ=coroutine.resume(co)[0])==nil){
|
||||
while((cpu_occ=coroutine.resume(co)[0])==nil) {
|
||||
var key=libkey.nonblock();
|
||||
coroutine.resume(rd);
|
||||
if(key!=nil and chr(key)=="q")
|
||||
if (key!=nil and chr(key)=="q")
|
||||
return;
|
||||
}
|
||||
|
||||
if(is_windows_platform or is_macos_platform){
|
||||
if (is_windows_platform or is_macos_platform) {
|
||||
# sorry this is not real data
|
||||
cpu_occ=rand()*10;
|
||||
mem_occ=rand()*10+40;
|
||||
}
|
||||
|
||||
for(var i=0;i<size(cpu_occupation_log)-1;i+=1){
|
||||
for(var i=0;i<size(cpu_occupation_log)-1;i+=1) {
|
||||
cpu_occupation_log[i]=cpu_occupation_log[i+1];
|
||||
mem_occupation_log[i]=mem_occupation_log[i+1];
|
||||
}
|
||||
@@ -158,19 +159,19 @@ func(){
|
||||
println("\e[6;1H\e[1m CPU occupation(%) : \e[0m",cpu_occ>90?"\e[91m":"\e[32m",bar.bar(cpu_occ/100)~" ",cpu_occ,"\e[0m ");
|
||||
|
||||
var tmp="";
|
||||
for(var i=0;i<70;i+=1){
|
||||
for(var i=0;i<70;i+=1) {
|
||||
tmp~="-";
|
||||
}
|
||||
|
||||
var s=["","",""];
|
||||
foreach(var occ;cpu_occupation_log){
|
||||
foreach(var occ;cpu_occupation_log) {
|
||||
var max_rate=50/size(s);
|
||||
var rate=occ;
|
||||
for(var i=size(s)-1;i>=0;i-=1){
|
||||
if(rate>=max_rate){
|
||||
for(var i=size(s)-1;i>=0;i-=1) {
|
||||
if (rate>=max_rate) {
|
||||
s[i]~="█";
|
||||
rate-=max_rate;
|
||||
}else{
|
||||
} else {
|
||||
s[i]~=rise[rate/max_rate*size(rise)];
|
||||
rate=0;
|
||||
}
|
||||
@@ -183,14 +184,14 @@ func(){
|
||||
println("\e[11;1H \e[32m+"~tmp~"+\e[0m");
|
||||
|
||||
var s=["","",""];
|
||||
foreach(var occ;mem_occupation_log){
|
||||
foreach(var occ;mem_occupation_log) {
|
||||
var max_rate=100/size(s);
|
||||
var rate=occ;
|
||||
for(var i=size(s)-1;i>=0;i-=1){
|
||||
if(rate>=max_rate){
|
||||
for(var i=size(s)-1;i>=0;i-=1) {
|
||||
if (rate>=max_rate) {
|
||||
s[i]~="█";
|
||||
rate-=max_rate;
|
||||
}else{
|
||||
} else {
|
||||
s[i]~=rise[rate/max_rate*size(rise)];
|
||||
rate=0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user