' sysinfo for Telehack (Cult Edition) ' by pbernicc & underwood ' essential variables e$ = chr$(27) file$ = argv$(0) ver$ = "6.6.6" curhost$ = th_re$( th_hostname$, "[^\s]+") ' ANSI colours reset$ = e$ + "[m" bold$ = e$ + "[1m" red$ = e$ + "[91m" green$ = e$ + "[92m" yellow$ = e$ + "[93m" blue$ = e$ + "[94m" magenta$ = e$ + "[95m" cyan$ = e$ + "[96m" ' colour choices (make this an option?) primary$ = cyan$ secondary$ = green$ ' underline and at-symbol styles ul$ = secondary$ + string$(len(user$ + "@" + curhost$),"-") + reset$ at$ = primary$ + "@" ' string manipulation functions def fnchomp$(s$) = th_sed$(s$, "(^\s+)|(\s+$)", "", "g") def fncols$(a$,b$) = th_sprintf$(primary$ + bold$ + "%S " + reset$ + secondary$ + "%S" + reset$, a$, b$) ' colour chart 1 for i = 1 to 8 : c1$ = c1$ + e$ + "[" + str$(39+i) + "m " : next c1$ = c1$ + reset$ ' colour chart 2 for i = 1 to 8 : c2$ = c2$ + e$ + "[" + str$(99+i) + "m " : next c2$ = c2$ + reset$ ' help if arg$ = "?" then ? file$ " v" ver$ : ? "usage: " : ? file$ " [1|2|3|4|5|6|7|8]" : end ' initial checks if val( arg$ ) > 8 then ? "%invalid option" : end if user$ = "guest" then ? "%login please" : end if curhost$ <> "telehack" then ? "%unsupported os" : end ' gather data th_exec "\show vmsize" ; vmsize$ : vmsize$ = fnchomp$(vmsize$) th_exec "\w /tver|cut -f 1,8|grep \*" ; tver$ : tver$ = th_sed$(tver$,"(^\*\s)|(\s+$)","","g") th_exec "\show uptime|head -n1" ; up$ : up$ = fnchomp$(up$) th_exec "\stty|grep term" ; term$ : term$ = fnchomp$(term$) th_exec "\ll *exe|cut -f3|grep " + user$ + "|wc -l" ; pack$ : pack$ = th_re$(pack$,"[^\s]+") th_exec "\ps|grep memory used" ; memr$ : mem$ = th_re$(memr$,"background processes,\s(.*)","\1") th_exec "\w /protocol /sock|grep \*|cut -f 1,8,9" ; socks$ : socks$ = fnchomp$(socks$) th_exec "\df|cut -f1,2,5|grep -i user" ; diskl$ ' adjust / format data up$ = th_sed$(up$, "\s+[^\s]+$") mem$ = th_sed$(mem$,"memory\s","","g") pack$ = pack$ + " EXEs, " + th_re$(memr$,"([^\s]+)\sback","\1") + " TSRs running" disk$ = th_re$(diskl$,"User\s+([^\s]+)","\1") + " (" + th_re$(diskl$,"User\s+([^\s]+)\s+([^\s]+)","\2") + " used)" tver$ = th_sprintf$("0x%H",tver$) + " (" + tver$ + ")" term$ = th_sed$(term$, "^term:\s") prot$ = th_re$(socks$,"\*\s+([^\s]+)\s+","\1") sock$ = th_re$(socks$,"\*\s+([^\s]+)\s+(.*)","\2") f$(1) = secondary$ + user$ + at$ + secondary$ + curhost$ + reset$ f$(2) = ul$ f$(3) = fncols$("cpu" , "ColossusFrame Mark VII") f$(4) = fncols$("dimensions" , str$(height) + "x" + str$(width)) f$(5) = fncols$("disk" , disk$) f$(6) = fncols$("host" , th_hostname$) f$(7) = fncols$("memory" , mem$) f$(8) = fncols$("packages" , pack$) f$(9) = fncols$("port" , str$(port%) + " via " + ups$(sock$) + ":" + prot$) f$(10) = fncols$("syslevel" , str$(th_syslevel) + " (" + th_syslevel$ +")") f$(11) = fncols$("term" , term$) f$(12) = fncols$("tver" , tver$) f$(13) = fncols$("uptime" , up$) f$(14) = fncols$("vmsize" , vmsize$) f$(15) = "" f$(16) = c1$ f$(17) = c2$ ' theme selection if arg$ = "" then gosub 10 on val(arg$) gosub 10,20,30,40,50,60,70,80 ' print it all ? bold$ file$ " v " ver$ reset$ : ? for i = 1 to h : ? primary$ i$(i) f$(i) : next : ? end 10 ' PBERNICC'S WONKY TRIANGLE h = 17 i$( peek(-1) ) = " .@. " i$( peek(-1) ) = " . @@@@@ . " i$( peek(-1) ) = " . @, #@. " i$( peek(-1) ) = " # @@@&@@@ ## " i$( peek(-1) ) = " .@ @@/. @@@&&&@. " i$( peek(-1) ) = " . @@@ @@ .@@@ @@@. " i$( peek(-1) ) = " .@@@@@* @@@@@@ *@@@@, " i$( peek(-1) ) = " .@@@@@@@@@ @@@@@@@@@. " i$( peek(-1) ) = " ##%@,@@%@@@&((@@@@@@/%,@%#. " i$( peek(-1) ) = " C O L O S S U S " i$( peek(-1) ) = " COMPUTER " i$( peek(-1) ) = " SYSTEMS " i$( peek(-1) ) = " " i$( peek(-1) ) = " " i$( peek(-1) ) = " " i$( peek(-1) ) = " " i$( peek(-1) ) = " " return 20 ' INVERTED WONK h = 17 i$( peek(-1) ) = "@@@@@@@@@@@@@@@&@@@@@@@@@@@@@@ " i$( peek(-1) ) = "@@@@@@@@@@@@@@ &@@@@@@@@@@@@@ " i$( peek(-1) ) = "@@@@@@@@@@@@& @&@@@@@@@@@@ " i$( peek(-1) ) = "@@@@@@@@@&@ %@@@@@% @&@@@@@@@@ " i$( peek(-1) ) = "@@@@@@@@@*@@ . @@*@@@@@@@@ " i$( peek(-1) ) = "@@@@@@@& @# #*((# @&@@@@@ " i$( peek(-1) ) = "@@@@&@ @@ /( . @@ @@@@@ " i$( peek(-1) ) = "@@@@. @@@ @@# %@@@ " i$( peek(-1) ) = "@&& @@@@@ @@ " i$( peek(-1) ) = "@@*@@%@@@@&&&@@@@&&&@@@@%@@*@@ " i$( peek(-1) ) = "@@&&* C O L O S S U S &&&@@ " i$( peek(-1) ) = "@@@@@@&@ COMPUTER @&@@@@@@@ " i$( peek(-1) ) = "@@@@@@@@ SYSTEMS @@@@@@@@@ " i$( peek(-1) ) = "@@@@@@@&&&&&&&&&&&&&&&&@@@@@@@ " i$( peek(-1) ) = " " i$( peek(-1) ) = " " i$( peek(-1) ) = " " return 30 ' BIG TRIANGLE h = 19 i$( peek(-1) ) = " . " i$( peek(-1) ) = " . &@ " i$( peek(-1) ) = " ,@@@@@ . " i$( peek(-1) ) = " . @@@@@@@@/ " i$( peek(-1) ) = " . #@@@@@@@@@@@ " i$( peek(-1) ) = " .@&, .#@& . " i$( peek(-1) ) = " . & *@@@@% ,/ " i$( peek(-1) ) = " # .@@@@@#*@@@@@/ ( . " i$( peek(-1) ) = " .@ %@@@@@(/%#@@(@@@ #& . " i$( peek(-1) ) = " . @@( @@#&@(,/(((#@(@@@@@@@@, " i$( peek(-1) ) = " (@@@@ @@@@/&,,,*(@&@@@(**/@@@@ . " i$( peek(-1) ) = " @@@@@@. @@@#%@@@/&(@@@* @@@@@@% . " i$( peek(-1) ) = " . &@@@@@@@@% #@@@@@@@@&. *@@@@@@@@@, " i$( peek(-1) ) = " /@@@@@@@@@@@@@, &@@@@@@@@@@@@@ . " i$( peek(-1) ) = " . #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&# . " i$( peek(-1) ) = " ,@@@@ @@@@@ .@ #@@# @@//@ @@//@ @ @ @@//@ " i$( peek(-1) ) = " ,# @ # .@ // \\ \\ \\ .@ @ \\ " i$( peek(-1) ) = " ,# @ # @ || || \\ \\ .@ @ \\ " i$( peek(-1) ) = " ,@@@@ @@@@# %%% #@@# @//@@ @//@@ .@&@%@ @//@@ " return 40 ' ILLUMINATOOD h = 17 i$( peek(-1) ) = " . " i$( peek(-1) ) = " @@ " i$( peek(-1) ) = " *@*#@ " i$( peek(-1) ) = " +@@%%@@ " i$( peek(-1) ) = " @@: @@. " i$( peek(-1) ) = " @ @=@ *= " i$( peek(-1) ) = " @ -@@+#=%@* : " i$( peek(-1) ) = " @ @+: -:.-%@@@: " i$( peek(-1) ) = " @@ @.+-:.+.+%=#@* " i$( peek(-1) ) = " @##+ @@#@%%@= #+@* " i$( peek(-1) ) = " .@%*#@@ *@%*#@@ " i$( peek(-1) ) = " *@@%##%@@@@%=+@@@@%###%@@ " i$( peek(-1) ) = " " i$( peek(-1) ) = " ILLUMINATUS WATCHES YOU " i$( peek(-1) ) = " " i$( peek(-1) ) = " " i$( peek(-1) ) = " " return 50 ' ALL HAIL THE SHEEP h = 17 i$( peek(-1) ) = " ......',;cclo;....;olcc;,'...... " i$( peek(-1) ) = " . ,d0XKkooxKK0d, . " i$( peek(-1) ) = " . .:OXXX0ddOXXXO;. . " i$( peek(-1) ) = " .. .'xKXXX0xdOXXXKd'. .. " i$( peek(-1) ) = " .,:lk00XXOdxOXX00kl:,. " i$( peek(-1) ) = " ..;dkk0XX0xxOXX0kko;.. " i$( peek(-1) ) = " . .'..cldOK0kk0KOdl:..'. ' " i$( peek(-1) ) = " o;. '..:;,:oddddo:,;:..' .;o " i$( peek(-1) ) = " xo:. ..;;;;;doot;;;;;.. .:ox " i$( peek(-1) ) = " clc' ;olcokkkkoclo, 'llc " i$( peek(-1) ) = " ;oc. :xdoxOkkOxodx: .co; " i$( peek(-1) ) = " .'. ';;;lkkkkl;;;' .'. " i$( peek(-1) ) = " ' ';,,tood,,;' ' " i$( peek(-1) ) = " .:;....;:. " i$( peek(-1) ) = " ;c'..'c; " i$( peek(-1) ) = " ';....;' " i$( peek(-1) ) = " " return 60 ' BIG CLYDE h = 19 i$( peek(-1) ) = " ,ccllllollccddlc,. .,clddccllollllcc, " i$( peek(-1) ) = " .:ol:,''''',;lddxdl:'. .':ldxddc;,''''',:lo;. " i$( peek(-1) ) = " .;l:,..........,cllllc;. .;cllllc,..........,:l;. " i$( peek(-1) ) = " .,c:.. .......',;cclo;....;olcc;,'....... ..:c,. " i$( peek(-1) ) = " .;l,. .... ,d0XKkooxKK0d, .'.. .;l;. " i$( peek(-1) ) = " ..;c' .. . .:OXXX0ddOXXXO;. . .' 'c;.. " i$( peek(-1) ) = " ooooc,. .. .. .'xKXXX0xdOXXXKd'. .. .. .;coooo " i$( peek(-1) ) = " cccoodoc;'... .,:lk00XXOdxOXX00kl:,. ...';codoolcc " i$( peek(-1) ) = " .....;:ldol;. ..;dkk0XX0xxOXX0kko;.. .;lodl:;..... " i$( peek(-1) ) = " ....;cooc. .'..cldOK0kk0KOdl:..'. 'colc;.... " i$( peek(-1) ) = " . ...,oxo;. '..:;,:oddddo:,;:..' .;oxo,... .. " i$( peek(-1) ) = " .....,oxo:. ..;;;;;doot;;;;;.. .:oxo'..... " i$( peek(-1) ) = " .....'clc' ;olcokkkkoclo, 'llc'..... " i$( peek(-1) ) = " ....;oc. :xdoxOkkOxodx: .co;.... " i$( peek(-1) ) = " .'. ';;;lkkkkl;;;' .'. " i$( peek(-1) ) = " ' ';,,tood,,;' ' " i$( peek(-1) ) = " .:;....;:. " i$( peek(-1) ) = " ;c'..'c; " i$( peek(-1) ) = " ';....;' " return 70 ' COLOSSUS MARTINI JUDGEMENT h = 28 i$( peek(-1) ) = " @@ " i$( peek(-1) ) = " @@@@ " i$( peek(-1) ) = " @@**@@ " i$( peek(-1) ) = " @@*++*@@ " i$( peek(-1) ) = " @@*++++*@@ " i$( peek(-1) ) = " @@*++++++*@@ " i$( peek(-1) ) = " @@*++++++++*@@ " i$( peek(-1) ) = " ,----------, @@*++++++++++*@@ ,----------, " i$( peek(-1) ) = " | COLOSSUS | @@*++++++++++++*@@ | THAT IS | " i$( peek(-1) ) = " | COMPUTER | @@@**#@@@@@@@@@#**@@ | TOO MUCH | " i$( peek(-1) ) = " | SYSTEMS | @@@@@@@@* *@@@@@@- | VERMOUTH | " i$( peek(-1) ) = " '----------' @@@@@ .@@@= '----------' " i$( peek(-1) ) = " @@@ .:. @@# " i$( peek(-1) ) = " @@# #@@@@+@@@@@@@ @% " i$( peek(-1) ) = " @@ %@*==@ @#%.#*-=@@ @@ " i$( peek(-1) ) = " @@ :@+@%%+..%%%-.-#%@+@@ @@ " i$( peek(-1) ) = " @@: @@==@%@-@@.-@:@@@#-%@@ @% " i$( peek(-1) ) = " @@@ @@#:. .--:-::::= #%@@@@@@@# " i$( peek(-1) ) = " @@@% @:#%@@:*-+*+**-:@=@%#* +@@@##@@ " i$( peek(-1) ) = " @@+@% @=*%@@--.+*+*#-.=+@%#+:+@@@@#+@@ " i$( peek(-1) ) = " @@++@@ @@=. -+:....:.*=...:%@@####+++@@ " i$( peek(-1) ) = " @@+++@@ @@=-@%@-@%:-@:@#@*-@@@ @++++@@ " i$( peek(-1) ) = " @@+++++@@ -@+@@%# :#%%= +%@@+@@ @@+++++@@ " i$( peek(-1) ) = " @@+++++++@@ %#..+@ @#%.*#-.=@ @@+++++++@@ " i$( peek(-1) ) = " @@+++++++++@@ @@@@@-@%%@@@@. @@+++++++++@@ " i$( peek(-1) ) = " @@+++++++++++@@@ -%-+= @@@+++++++++++@@ " i$( peek(-1) ) = " @@#+++++++++++++@@@- @@@++++++++++++++@@ " i$( peek(-1) ) = " @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ " return 80 ' ELLO, GUVNA h = 32 i$( peek(-1) ) = " ///(#/((((#((##%%%&&&&&&&&&&&&@@@@@@@&&&&&@&&&&&&&&&%//#(##@(#///////(((( " i$( peek(-1) ) = " *//////(/((##%%%%&&&&&&&&&%&&&&&&&&&@@&%&@@@@@&@@@@&@&%(/(((%&#////////// " i$( peek(-1) ) = " ,,****/(######%%%%%&&%%&&&&&@@&&&@&&&&@@@@@@@@@@&&&(,,. .,.. .. ,(.//**** " i$( peek(-1) ) = " *,,**/(((########%%%&&&&&@@@@&@&&&@@&@@@&%&#. .,/#%&&###*. (#%#### " i$( peek(-1) ) = " ,*/(((((##((###%%%%&&@@@@@@@@@@@@@@@@@(.,.. (###%&&%%&&&&&&&&%&/ @.(((## " i$( peek(-1) ) = " *////(((#######%&@@&@@&&&&&&@%/ (% @ *(/(%@(###(#(((#&#####%%.@ (///// " i$( peek(-1) ) = " /////(####(#((/(,. ....... (/(####%%(##((((#(/(/(((#/ ,(((### " i$( peek(-1) ) = " ///////*/*,,., *(((*/(@@..,.. .#(/(((((/&&#////*/(((****/..((/### " i$( peek(-1) ) = " //*/* .*#((((((((((((#/,, . ..,.. #(##((%@@(/,,**((((##(((* %/#//## " i$( peek(-1) ) = " . *((/*/******,*,,*/*,...,. &&&&@@ &&&&&%%%&%%%%(###%%&&, @&//*//# " i$( peek(-1) ) = " ,/**,,,,,,,(##,,,(,#*,*//,. ,(#%&&@@( @&&@@@@@@@&%%%%&# %@&#(,,/( " i$( peek(-1) ) = " .*,,,,,,,,/(((*,#%%####%##( *(%%&&@@@@/ .#/&&%#/,. .#@@&%%%@@&*.,* " i$( peek(-1) ) = " /* **/*,**/(#(###%%&&&%##%##. **(#%&@@@@@@&%*,,,*/(%##//(#&%%%%#&@@%/,, " i$( peek(-1) ) = " #//** /***(#%%%%%%%&&####&%/ //**((#%&&&&%%%&&#/(#&&@@&&&&&%%###%&@#,,, " i$( peek(-1) ) = " #/****/ #(//(((((###@&#%. .,//(#/****((((#,.*(##/*/#%&@@&@@&&%%##@@&/ , " i$( peek(-1) ) = " #/**,,*(#, ,%&&%%(. ../#(//*///*. ..,**,,.,*%&@&(/(#&&&&&&&%%%#&&&@.( " i$( peek(-1) ) = " #(*,....,(#%((((*,.,*(#%##(/((.... .,(#%%&&@@&@@@@@((%&%%&%%&&@&%%&@(# " i$( peek(-1) ) = " //*,... .....,*(######(/(##(***(###%%%#%&&@@@@@@@&@@&%&&&&&&&&&&##&@(( " i$( peek(-1) ) = " **,... ..,**/(((######(##((###%%%%&@@&%%&%%%&&&&&&&@@&&%&%&&&@%(&&@(( " i$( peek(-1) ) = " *,,.. ...,*,**/*//(((#####((######%#(//**//**,,,,/#&&@@&@&@&&&&%%##%#(# " i$( peek(-1) ) = " ****,.....,*////***/(((######((((#(*,..,,#%@&@%(&%..,*#%&@@@@@&&&&&%##((# " i$( peek(-1) ) = " ,*,,,...,*/(((((/*/((((######(/*, **//#&#&(&%&##%, ./#%&@@@@&&&%%#//(# " i$( peek(-1) ) = " ....,,**/(((((//((#######((*. */(((##%%%%%%%%%%%%%%&&&&%&@@&&%%##*/## " i$( peek(-1) ) = " ..,***,*/(/(/((((#%%%%%##(((((#((#%%&%%%%&%%%&&&&&&&&&&@&&&%%#((((( " i$( peek(-1) ) = " ,*/, .,,*/,*/////(((#%%&%%#(((((((((###%%%&&&@&&&&&&&&&@@@@&&%###/(### " i$( peek(-1) ) = " *(((/,. ..,**,*////(((###%&&#((#(/((###%%%&&@&&&&&&&&@&&&@@@&&%%##,*/*(/ " i$( peek(-1) ) = " ***((**, +---------------------------------------------------+ (*,,.*** " i$( peek(-1) ) = " ... /| You need at least sixteen pigs to finish the job | .**/,,,/ " i$( peek(-1) ) = " /| in one sitting, so be wary of any man who keeps | ,**.,, " i$( peek(-1) ) = " /| a pig farm. -- BT | .. ,% " i$( peek(-1) ) = " ,,. /+---------------------------------------------------+ (. " i$( peek(-1) ) = " . ///////////////////////////////////////////////////// ##( *# " return