From 19be9909cb65356e3f61cf7355e65c42faecb3cc Mon Sep 17 00:00:00 2001 From: Norman Koch Date: Fri, 28 May 2021 09:54:52 +0200 Subject: [PATCH] Added supercomputer-plugin --- plugins/supercomputer/1.png | Bin 0 -> 29969 bytes plugins/supercomputer/2.png | Bin 0 -> 18179 bytes plugins/supercomputer/3.png | Bin 0 -> 14485 bytes plugins/supercomputer/4.png | Bin 0 -> 72902 bytes plugins/supercomputer/README.md | 61 +++ plugins/supercomputer/supercomputer.zsh | 639 ++++++++++++++++++++++++ 6 files changed, 700 insertions(+) create mode 100644 plugins/supercomputer/1.png create mode 100644 plugins/supercomputer/2.png create mode 100644 plugins/supercomputer/3.png create mode 100644 plugins/supercomputer/4.png create mode 100644 plugins/supercomputer/README.md create mode 100644 plugins/supercomputer/supercomputer.zsh diff --git a/plugins/supercomputer/1.png b/plugins/supercomputer/1.png new file mode 100644 index 0000000000000000000000000000000000000000..bf20c9971dda95822afb68fa8cc258193855d5b4 GIT binary patch literal 29969 zcmd432{={#+cxZO(4=HYA(Vs=GS9>=BD2VxS%}QD-DFBglFT6?GnuDk&alnfOc}Oe z+vaf_zH940JpbqaJn!>;$M?R+@vh^(@7%T9Ypvh9e%Ezg=XqW$P(?}h>}i_QL_|bq z@5v$5h=`605fL59IC%tqM`zR-1;3nnDyQv8M0Bo>@b6y{?B{5Sh^`RbL)_MIi^Yy0 z_0%^jC6`>KR*pVD_Rfz%HJvp{E{oVQqiCis_}ujerEx|2sp|7p2D+ZEy1Hf?gX^}1 z4;t1Df^6nW^yeR#>rx`w<@N&8ocGgsj=z5K;;q!`8ENt>7<{AAEkz}1q6<%RFeahm ztr#zfgiXAok`=xg$Tg2BO?~7Q zhwE6U;MjSx%B3TxeB-?7#pFyHy8y_mrneu$SMf%ggw!&2juiL?or9x3550SPy3I zx5thQR>piA%w|uJ@Xi^`Gcn~OC!1Y&+Tz|@&!MDMFll(Jsc`lz{Qq@kH3NF;;5tk< z+K__m_z88r%NH(&_j=@@cr7gPE;NE6KYp;X_}d6D!f7oh#%U1_RLzmDivE9K=~zTtfQ;4xfNhr-LJNE#xdXMz>c$Pk)4)!S#ON#Ij^+o-jE z6F!@Vn?H^bizo*U(9WJX%V=mw!xtbTBF0a8j+ycIvfPy`1yKPr9aq^nzvObStX?bF zKEb{e@=eG1(z_PX7=J%C_3)whVn2{NaK~$Y@+mYuXkqwK%;Ck08Cl6Bg~*xdw)Q}g zP+5}Imm(4poAQ@gP(D8TPPqP1>tZEqtcUo*h=Mg*P31gUXN;W)x|kv`z^KW1c6fPo z(8F%tGxBg*y?w>!;9EEE>C(nYjtNr;(4-fAp!dvNRe8!y9c;=yoN@W`{oY;#!ptmA zVNCo=MAyPlJX zdNx|~S_Gb-_YZETaiS+fcWY|a_BQz*t6}Kv7*CUY#w4WjTg$P2o@%)v7W+jxRdPQ} zUY?Z$JL*+czCUF+gFJ}b@={B;{EY}XT~ovNn7ne6{$2{78@J*|DOa2mPC<)pw&#XU z>ANkjpG{X1-})?{8LWs>iv9G3SzdXuZvh8)_mp8dH;e=>f_AjZEi=VeM@NovRkpdo4fXH?_lZ65xSSpZ3N!Q37s3T>FKmzoOba`T&zz0^of29 z7lJN;N54kCk#>}bXxQ%MiSF^5VSg_#xho}`s;m{oq!o?*m!I)3=6XR^_$7uLu2aIVG3EtkHr{f*-F_4U{YM@L6qUS6$iJ$K21`H;D} zxn$YUjm#%9GPOJF^N}3dD-E=EHUs&-H@&2;bJ6ue19d);8es_ISxEv>h-1pMf)+VLlAz9tWFS1j=`8X)8h=>|3L=1M7_=rT&h$I}LH2kjve*XM9jY{B(kgp{9teJ7<^l3JBc3mBv{`IBp zRm|$P7g{Q|jh{wQUw>q{)Y049`#SkOQ`67>za}vlNj$c|p)@vNWo1Q8P3^_Ym%Uc& zQM?xMZodOxyf_lm_8~srwqQU=)@g5NJ)A|ETvbEky&RJ&Nr1P9G&3Rs@(T*M z^vm8yNB`t*{rVuoMnLz;lP5ktK5A-R(`_;99+gs8`m2%Eo6nCNIr4jA;=*a)`^-V1 zgky7keTt-RK#zke2mwj9h+ja!#l7nEnKKK$=PnC9;=U9hm(e?o!PpJtoBeooN?Bst z)WjsYoGgzTH&l$W5g5XYd8}C~DJdBn|9*Q_Mq+nKMgaBt_3K+E4WCm}{a?MRSnt!- z%qY~Yby7@kNrY_zhZJ)B@g4m{mG|%8YiMYQt+w(`O-+f>D<`U43T{YBN*W#>9v>gi zGii*ML{@$N%yj*_Z-GBo)s`{D0IW8168sT)SiSKLPR{oBc1>1Fdwcs-rMNPOsncY4 zWMxAcBn{Xil%o04%gT1J0|lceRyH@a*diW0cmO9!*U0yceclktusEo9<$R_=rHG)Q zprjhP2+?xe}b^1xv{aaw6rv= zE-Zu|r?RrL#ihF$y~M|lFANsWZ!8R5yZdIQk2_B7&lY<2S7MOvSg)0{yZd%)6z{<< zMiOEi0>7uX_ZCTbSXfQpV_RE#0h^EI^j6l^1GJ?JG_OaQ!p6zW%v@SpN=sv1G$9Ln$l(%AULMjUVI!rI#0Y@daiSia`L;$;HLR z!3(wA^hfL+biQoxyuB8P;4x`<)78~QD`=Zb;fyBR-q{&cfEcTcMPWQ~!+8wo3(l$J zS(@b#%{O(6a+Ql>1nuJYs=OEd2h8OETvZ3D`(QFBd7zh<*Y57_me>AFXEK*z)nzg= zG8!7T@Megzei5B4&5YiBguz+}SKkaK~EBo)>WI?=lb zet!O5Sn^x9Vmrl;{idX(oZOldT0E+q)dwM!e{XJmCptQMY3Zr!HF(?+5fKQd<==N) zX3I}V%gAJW{VJw0Gc$9A@wt=~f<-BoJL>)h!*LI>`+qL=(s{A0G>S0k#7nn~kC6pa z^O~cx^^J^-#OUqnUtfrdiYj+m_`U4b*4CDxm1BOX{N*X z%tar_2|*XRsDkQm-n$O9LrU^RApE%NNOAh!m6>^_ofn~`$B8$b$>Gnw z|5aRdl!(Msj2`fPeSMf51oSsgL4LkrQ5s4_&_(sfHzM9UY3|P|&!(papiw8;`OkpZAN1u!-S@GX|D8(~SdHTdT6@9v!2KNy?eRo|K)l|v6 z4=PhBW+r47D`b$n*U|wQlHc2m7PWVsdnN5LdmU;qAI)IiOWdgQ(98Ml_sy0yFBp1m zuzq@d+Ai7Cc7J1NP4YlSQE}wbHMmhRw~qj$2si5cs-r#bb8pw$>{GVKYz|=t7kEFRVFQ^zSMuq&12i_XIqM>E2~H}f{`() zks%ep^dfRG({YpYlrMbI-Y-%F0wtkfSFLE>r=lA(R2T0PJvT3EF^j0fxaO2nxTfOj zFW%sO+n1Bt9R7HKXD9SvW;gCf#QZiN&Ev(<_GIH*dn=K)m~F^Ee8mGZ^EvlYk`DF^ z?M|G8yCyx(4AFfws_kxRX&iF2I>Be{8hOyY92Q28m3vm!$!NSe5)55Kgl5JoGU-Ea2SZcsYSe;Be&@C*sLY|pt?RZ7vWZo${3 zuH5N&c5+eq#JLV-AL&~EZr3p~va>XZ=H|8H>ae?xITWd@kMoA{AEV_XxzrsUF|w)C zxGEA{G(~5r79w5$sR91-^N)B&&Ha{d%d?Z`RY|Ba#bm! zy`k#Pch@PY2effI;RVXBZGn~zBs-hPRAI-av9S!Xv&3I>Qp2t_TQUXtnztp5k8?(o z(BJ>{%V|%f@oL`3A3sD61ZVuKB~F}h9kp2uk&;qX9WD;@>>lRDr-#emyYeZT#$$nh zWi!>!&r`5C^b&N;d}cpMY05+sU|Hkurz(%J|FXeRj>tGN@!GF7fqWf>?EAC*;Xml)xf^p5_f z1D&1Eu8GI0;?7KR`!O-zD9fcs`8u=V$}17dvv4Uc91Vx zC~p;o+%>`6oC=~M3zc4j^*GHY3LNJa?kD|GsOKg2FjaGL=&&0=2 zs7gIcO(gkU97$mFD1>O_ODV*T4m+@)Y|x?oq8^a)D;KdZt4)fmjeQh9KDygRm0mG zOL?(d89C^Fq6)F{vN*p~UG;Wh;rm!@k+eDmzu?%=EnI1-^z8&M>FzJiWIgLW+F7uV z6r&N>uk)FcY;UW&yJHf=uFYl@v+@_NCi|}n+cQ4UQup2?H5TT_yul?3lP$aPIk7%? z;Czb}_J~^vpTIt#TQxxF>;3=W}pj_C)^ zXEI#!;ixNGFEx1{{kZNV8>fq?lxr#{SLmo$c)ZuU7cWGRd`2UsGWGSFF4K5?xp)Ff zT-MjO{a0+X=N8XX0hXk&YxgqN*9=_YHfPRMhFa? z1=BByRpm|=7KSNddQB$v&eGq1c_Lg1U1~kTi$tD2`3bm!jg9y^hwBktF?L;cNCi4N zeJ!62ZTKS@e-HAe7Tz)Z>cGvQi`~5$lKqpUp}B1_coAR;mR`%J5D>z5Ns5@Zp(mpT z0(N$b5Bw25T|btGon7xU^F(=EXuqefj?wXs%=kIc7_N2?xuZ^c)ZKmB6Dd)N!N}5_ zjT6Ve{Q)`P8JZg?hi6FJY*HnRhW5QkF3C3!aQ^_&CYT&uR-yV(InY6(rD$7Ef zGE!oHEwqs$s9rwBVes2y2?+^APe;enfJMRs4ULn>Uf54Gs)ce?z>yd zDGHH4r&gk)X&QYlTbIp;7nJ%-&=nRH8B}^WL+fZ&C?Y9&@H2uPmhYgQyA{7!eK72Z zs@xc~_Nd(7-Cnhs(k-?ys5iCexO*%R{>go`lEK2;s_`~O{1XR?1 zXQGBc?q|llKpz9^?)5#_>bm1m+U%(LkHiS#0 zrJ=#j4~>pr_LP-vT%Ksew8sq%5APB#0~U>oi_2oZxUg^vgF&OwqAujr)Z29w%3{lP z6xcU9tdtVVq-W2bRTf{@P*FK=;n+SyA5EbOB+tEjfwTKn`2^l=hlcQELjwrwO-!7h zQDR=Oy^4}F%zgBHFYRvf^-^}c~?jdAppT_O1-DeDArF@;A&y)9% zgFLY4$xvT^e}BQ%n6_y`C)|S0hTeW4X2G+sbfUk_+)+cL2Z*?sn3!vfjM(sld2|kP zXEyZ&DZP_T39Q5BsOKUVa$CXCvA{&QmfP3YS8{(jbm4kzTU?T-r4r(=zy5+I)6C3F zoR)x`*OUp!S?qMH`D$O5E^@oYaK%lGaR*y~g4?^C>JIIv82usyd`{KQ90a=0YRp)! z^VT>gR=^`Xmjuh3naE`pKS_?eAKqAOge>`+zmw!#==`j*bq_6dW1~YJ&)w z_vVNz@R?BpPof8GiUw?e=K=y?Y^*vfYXKv9u-z1PEdjaj?kjB%-Ftg{P`=Cr*BdPd3TrRjY&*zI!&TlxJ~MCy z8>us;);Jp2L{tf=Vncp-Hg0_5Mh*b*X=}NWTeS?64%>tWTQu1oCrbSC*TG)(fh+sFm|k{!d4kk@J^+yfbWMA7PW677bpm-{U7@grQRFGztiHj)K}df?3QXk9 zZ>V{J3j|_-?81eqy?(g3=$M!%0x{id{1Ordtdx*;3a!!1%*;D@{17T)f`*?3o!2tu zz`&5;=jRt`;BkYI5y;0^etv`VNc=)^XJ;pN@mvUyg=l15D~8)A>c|> zTVT^8?x&;Y3H9OVMNR0!iHm}11yB3_K<=TDh03>6??K~YznsU+}VeSLlTNC~g4+=K)}Q&T2zPkABp{&sh(Kg zGXH5r9d|2`Una)JVx*_x28pQ%@So(7M`cx7T0lVm0ZY>QJi0ul=%!(nS6eiHV<-a< zXZIBq>G-WQiU}pmEFlxF%YJFRhJyM2)`A_fg}|K+lsa0txD?%I2F4byaiTHQ!aBd2 zE*A-WRVorTV#z%3jT^H-MC1B?8G0?(!&y>OQnvAU;85St3gRG7K;FT5Kw3vb!GtX& z>A8`qluAgj*fZmylKWdgFAfZ01JhDcrrHF@NJvP&4cNejUnm|c8uLUF(rD$3Qk%G* zV*4~gLsOGELSDQAO(0H)8As#AJ$FPvjBt|^5fSOJa(?Dnu&`iN7>&Xxq;zrG6)aY^wzj@{^(tLG zRboa8&a%{zrolG6bB<_98UC)Im{^4cua#??=YYkdM~~dx+)(DT2&TxE?(XhNckK2+ zfrWy+ym@=;tj5vK|K(0GEhii(P1D*PVN_yxkr508$}M+Cr{JG<_IZz-d5c5<3o-||A~D$L+IJOwNn)lHpAAuhi%bG8$JN3?hT=*@PR<;E)ES}7M^zh7cpbb8w1%9hC;CuTPiiNm#UB z&U@JU0R*U2AiYyku8WI%Z!P^om=@}6Vh7Y!Rj-~u$*dT?*2;@o8^28GuM!9m@jdyw zDNmMm!QCt8`+=gNJb(T?71eZ^(6E2(%KK*1Wlf5)=)ZdbmX`sj@W!-lrW`<0g}eLw z`7`8z`E?H{g~$URMm7$PZ;P~&Psg9tJQ}y5hwoxw$N~IS2U-f~Mk7<&8XDgKlm=3; zoTC-sxOT0!_Pm3G1FQ^C;2;-hX6rrXqY)>$3P_fRXJx$R<;FWK77HqL%9k%ZBn4Kz zY%y&OA21jU3p4ZGJ9jFf@MHH6Dk>^q&0!<3T)+OfP=`yI1|H{{;6p(0mzLh#otW#* z2!HnucH@+j9A_lDw|D&>oM{zq5BAA^)sUEohzHNEj*5?aOE^??2#3g%!EZpu zgC-V2FFuIB3O$XK`5|UH0=oYR8F-Ej|>U zmX>Mdm<0i*bx>l zgh7&?mR8hr0}J?({wzUn+qrZI+eaZ7f$Y}GdG1lJ-b(cKwa}K%VZ%$=&gcZOU z?l*$I`o=L^pj`~EFSb>4g28Kl8zX*(P*=Rq5YiKI1pq2v>08MC-PYFojd5Kh zwZj$eyv)pBNF5y~IZ+)QDyf3O@H{IG7QeMb7j!5@ zw2%TVrW`AD8*w)|4|E|;&X5Aa-;KJjsi9Hl(_>XQLh}MZ4J#!)%4dPllT$f6|G=M0LV|&eqk+B-KomO4>`oQ^x;Vn?HoPizZd~R!bv}dhp)~X9z@@~ z!Ojl)ri}l&g`v9GlIhY%H80N63P5ibY3Sn)JsX0FDhM*UA#%?-OzxX`8;#4!SYHE( zG6wH8ReSq9>BN&~&J;vCZV21|uDd21!l759a^<|Knb`otDlR&;*Gj+0CaUIS8q%So@Vp7uUrz2L^rw(z z`TrqD)W(_>41n|^b>(U7QwJ)KT2mf=K|#@WhjNmh(b0Cy>c~{7+wyNnwj|U%uL6ik z>4(h{MB=h5EA`nTT%z2~%%&O{kgZh=?etp7opMa%sa_xq57@X2Z;wH0;J)-(EnQs^ zF6I)e2HOP!mZDeG%-|Oji(M6-+&d3V@M&KqUq~AUaPG0Ou@U^_$Z?0b`LgL*kvp#F zR6)`+TN^`m85tR!Tr*YB6Z_4v#;g%6Ml_XJ;aM9xoE)x#m&X zZ2DX5bEoBHNdW_j{y1(64R5H2itQHX5oPBoDZjZa41W4_#j{y-v7*4VnLO1h*0*vp8?}l-MMgw8M_Cl_ zU_YFqV9tD)mlPSdMuOoMRt^w^vXX63IoR1*;{(kT>_?JX!l_UD8jqAY+g0xg;N{%` z`NBOAz__@$ehxZEr|_p$AvswsH+U-mJEuc~vpx>%M@&L^FpnPL|J7k8>+=-m1@6!stEVc_3E1=lqEwC-yN6I!Rb>oI+l>2%S)u@wn3-t<8D1@& z4=4zrSYtUOkX>*>}WF!wnzz#P(BPt?t8cY~$Y|#Bcdag6RrRxKi z2UP^xi?y{iXlE$GdaXtZER^ru@s+yrk?(OAFG{SI+H9!k36MC_j~;!hG=&s~l05K| zk$Kt8JrZ}GK=wes3GcMjNY?<-*cD5~UxD>Dxc_0%HPnQp?hzRulcV%S{ zuojXT+1UUwB*3`f=(q~q+|bZaB`JVO?hd0ngrybz&z6RmHgm~85TdW3u;WDC-=PHw zt-zZAQyy(lsH?p3SXbFiwg1X^AxQ=V%;4e|iT{@fqIH?rPD@x=_&U^m;2Lh-g38KA z6HM<1xPyV3+I?yKw&y(;mknT))YR3f{j>|MBKFAt2l(K6HQTTnNT7p}{XBqC(D1Ud zHaUO9DV-!+7_G!dS;Pmvd9%AzOG@px%+1JRocEB491J0CBTD-X4R@g&?$h6Lp6dY; z?DostYzV{yy(K#dAhPYITcZL415ceg1-l1|GPdlN!XG$dWE=7yVM_gnCO{_l8zz=< zChwsh19byv@?JRe11+rtanC+{(f?ZbZm?mX?ckcXhp&2Xq2#;T9kv zVM8C=|5M0hmD|L`1e)mO9(84aERP|6z%u~7Fho&yt&^*CfF;~1P?F$-fjd=HROE?j zbyN}k!g(@cfD8x-cytES8Wj#12>>8aP_T5e z&~$GA>4)#tG8}z*^XH!=ygU@>x@~tu*KOaDfKOZB6xNwJv}|J6ey*Ndha-C zYHGT<33;aOy}zNJsX0%m@P-?=Ap%JB{!ldZnxD@SzeF&)e{6Q+23~A(auOa z9o#w=ml|vY3LLe+W$aeITW*$moBBLu!5H?Au4LNBw3V?uV+@#1VT9nExM3D&9V0GK66H9 zCQ}j+HzK1>-v=z96Y}=1v}Vb6j~B9k5df|S$l`i>mn{+!6B7Z$0hh3s)@xPHf9yXS zR5s3d?5sUz1T+d35+DsPllAuX@sM1LYyrB-Ht*r^UiMY;K;T4-jDAfvhXaWSxpJa= zT+e?N_sZ#pkdP2J_gioIBY3~dO8BY9B$?CdOolagc7DKI}P zdaPZVD_!GjsKicMNy)=Rl~=yL11-Y%SRwo0Vb^4-IQ3Z1p9DCLEjB8jhE^u>rmi{n zCCFV1%3Q7sj{okFnf96%W1$Z%_S#+nGa;RX*TXDLu7|nbm#L4ne7M;?>jWGM)G@?b z{Y68)DlcI^zBOQ=!N0hYJ3~iH3*9+8T3qnGXc$;&LU zvA(0=8-mRnQZUSUw6M6iAct|H)p7ZEJ-cS+B_7k0WB}VrS|prB^gTVxffnUig{lk8 z&PQ*$Xz}d3$zgI#O4}drGZzeCOIE94uRh`i19WQi$ZwoON&I;`CnqOMzG!GE8VgLp zRv8lmOyIF2w?kJ!H+5rz4(|}kM`sfF6CsRa6aMN(l6BCnA{nTz?jk5|+lP;0(Hiz{?;uZIy1EyOvegsUpNL3R7GF~?N z-w!$Cfj0|b7>M))gW_o8c>*Pq^1r5Jo@wdpd#}x?qF3I$At}_^TUxbm)Q``05*dLO z;4(`F7>@w(L1nE7-7c9A=T%0(FYC1^e*fV^6&_a}Kc5KzZ1xET?q{j#P&ofCdT4Zw zQcna97*b4;-PkD04g24%;p%^LxW0ISy}nqn+Wzjk0?tkX1g+L?{uJBwft$btKFl+| z!zBtJZlLZE!^GRZ``;6j@(g9bCjBaLA+Wz z7*d&%v`_gcMt@d8SXGmuSW*Y5ru3VBem|2s{y;2n=s zgGNW44cyNwTgwwb-As9Hmv&lmu(ADYYdd@H9KEOumO#hJ%R{ynqIfg`N z0S|+yn^>kieMd&-s3$8lwRfp#d}k=nKkZYk|6ZCgFET3t^0w z2OzaEz4MQHb3)18s&J4_)P>+vAK{d+8x_MVj$}s+koy^x(Y}B3dw$;9&N}a**yb$G ztL#H@QPCj&o8-yw>B=C%QJ!{ma43rrZW$W`2v9K4iVGG5=cd%g40Cv(xCpo>6=MX_ zd*>jZ`7G6(ASg$u7X%J*?8l);gX?efO03aGKy?jubz-~kg@mUDIy-M8jy!)BpcE@) z#1nNnwF9cUQVs*46#^Nqn`6eK4Z0wieuZ17M71+IwS09p8b)zg0-8WdiHNALueaZz z{)dS*R41!QSLUr8(`nz|{dpz`4d9pc^`BIKf{M?~__F3HsKe0AlBqskJhKn4e!tU2)rvuutFKcPQ`kIbt?M?=+9;?AAm#x=Q`jGSMThHd5pZgjsRZ3pkG?* z4n1uwDi#BA@Bz%bwj*W0l4tbJf%!BSm2Cmu-}|ZEa9Ofhg^c;hZW(CFZo;U`cW+So!Fjr{Xnrl}ANs;qGGbK_jIF#CipI6n9vjezE<;si2>_F`ByEyC!HDApM(;mhC>W>5}LEd(x_gm zv!tXLuXFBW4nMnVsXXXIStw8I$CUqrz!Anf{p{A4&sKMG_4ZiJeFpu15g640jX(>f zWG{>~eoEH^9PvmBlx?D;hsMBAW{HG@pX@nn&Qzg15%Sj~q&94@d$xiWpZauKKpO1j|6QL>>=f6L;=^s;j=z zMv^e~@V65Gxjg(iUMWlSA|)m0aYf(0<>s77IFwDQ!O1e)om!~#{Q^xm;ggpb;P`39-w%NORL z`X4?u2Hxur5>=XnHw=6p4TTJ^g>U+KjL;`S8jg~ zGYA5+vzkoTR){J-N?Jdc;^8E9#t z{i*YJ_x2*>%^p0s0ICaH#Ky|nnv_Gzi@m%;>~&NiMF?2pj+ZfiW|jvN~E?Eay)iIeL`tj4+pMq`v#O5f)mP z`*6s~HK9u!;Ppt#6oFq~)Nufj?~N-F7!i^bUJA61MKDNIYVgjpl- zqJY#DC1lTNQ41UxS_;>Yt--dpyZcJoDDvQnoBO*F@5c)}&4vIOI&L0vA&=nikkkUT zoXY_H7bvaM51*qjW0B6CCnhs;ss^F3!I;#Rmk+Sw-uEK(l`gN5Ld~gM?54vjVgW|r z=m&bI_*XLX^1_Th1_Ydhu~4_uzDbFR&&5s04Cu+oYN*w;ORa9_m=I+tsjE0p0m*%|+)oQaGcX&Xo_ulGVb;IEYvOf;mq>IwP= z*H92ie};%g-Tnujr+i+3iRp7`=>Qn9ww!EVtUeVUj!WU>^7qg4JTQAo_r=<&U8>l2 zB!5vBczpdTo;H3Jcm|f1GoW}^?eAFQ-w%PQ%;D_hp0lgq27Vg1;hSIIJjnriHSW*F2?byEH?TWLU~&F zQ=SfeJKR9A7}viBAf;dKvg}qdJw4r;+I!}a|Oa)KY>15HPTINbY-dqou%sv3K2L@9@QM#xHX;$ zWntE-3|K}OdSl%A9mK^6V_`Hj9>BHU38Hcz#U#9cPjDg@T_tlbxg2ZJ9Mke^8$a8$ z8d>xB<7mPp{QWHbaxgIX`}+?id`Mc50BhEt_W~?FxBdk3Kdc+pp-LpK-Mql})vJ;|(@PD;d0X4t z!V>j^<^|eWn$M*=MpE0N?tht{HgD9<#z@4iI4M5wj)gKx1c($j?q0#1$DEa`Sq7#T8 zwK(mKdnRDkJ5%`!hW>C5x?(}_o8`QYzEM^#Q8~b}3uYrtVDp6?nXg{0xxtCCY5O}{ zM6q#u9+G27OBVe*r#}~m3vyJ3V?!1P072{+ zfOE)ShsU#h=@hkJ7mfe+e?G?uiA`2rR@UDjXK|jRtOHObIK3eEQwjvj z^dlm|NZEK;L|9m&W(KIAO5ijA{>3ogw3*hf!U!3^4M~)pjcrFD51$P{9$aWjz9Mn9 zUz+4PyunZvV&|C2&O2Ogr>f0>*ft-j-RMdWXElhHrer5$C0 zq}yTlYuyGKgP{m^Eu{nrNWnm$fYF5B6MGAv2*Il?x#tA4*`w9*bANUI-BSzm;D2nj z8!%}FUGEbfnqamFtJaUV5TNVAjJ66`X(C%dHMm9F$+1!J!_Eup%ojj0gmak?~B#<(QVT(*=WTV z4HLnnCa#h1{BzF2a;ym-I`nLSn*#aop0YCOsZ;LrS;e5*@2LRc1OOWOP#%n?jA53b zBZ5GsJR_)JODf{(c$6YA3qA2HoYa4-0d(g09!3+4M0do z-KPR%$iRTAG7jD=u^W?sK}S?~p)i^E#()J_8sNcXef>IE=4=h>X1RKq?TAS5U0&~< zHRzdjIjCI!{iY$mlGIujf+YP3GC0UOp5SNPNOmZ#$j;6t?KT0+E+lje&6s~-< z!X2hv%}Lv0g~0}(^pX3jq-1q^`VDSwg85QZR5wutWSck<=Q)ty0bK~%4ij!x07!p8 zLSP)3nXz=up~i?^C3qCU9`7J!=OBPO_`aPV2~axbU&vY zKq!9j0Gt~jOP+xXHa0HI6A%u?L6fF-L>hA|XMLqC6Cw+gwSTnew z-7kq+$j4U;5JJD0Furi9AND2zm*Wu4==LW=-})?%m+zmW&LQ1$enz&V6(F{CTWs&a%Miq&4;4lC&aXqY{`Kou zEI;%W(uqPY*h^%+Jv|y)T8(vea0+M|9zGOuUoj<6Z#mO8INU2S7~234Y)+AulVg!l zdU(CyQ_|MHhX62+b(j+S8|Nm*$M@~)*Pk*nFo*z#ipwHS0RbRJ=%V*_T_CH_@mY3E zwL}KafT0n4Ud)R+R&8as5c2gi34b8Owhk6Xyq`XB_Ssr?3}m`0b!74#(O-q9lRiB- zT9R~5#MnCH?UC)|OeHO<%NDE|ymYcB(zAJS8kD?mvVvyi{q3D((=6T2YpFi+GM!iR zdQ_hN`cBx3kBC*GQ_cDgi;JN{=Bo;}j4y1fKIfnfCnw__B`|LTtAsaWTOM=Jhk_Z0 zAnQP*4p$lnC=UFRefI1QQ2#)-1BAEZ(!}~2D5L_EL^)6#&?)KaiaJiW#@p_O)Em1F z+cyI9P-Huzqpn^6)~Yqp?<|VZPT(m9nYlTf1-ag`um;`@rH}LB^X8Hy(Z4&l z*GNn>U_n}j)XxRmoF)QoI z`1j}H7u<9_J@L=}I_k5Q%pktjAtUZBrt9$;N;s$gKzE)iLwcmv5hCxj%*@sc&d<6H z8p=B;0_))Hg#9DAFD6bc;$(?INiW{vpb}kX!eyrpt?+U#R&h^^uCA<9^)_~rUgG|Q zujcujK#OkC0mZonR@$vk+k)WFgeU646*1Z^S1I=HQ;Xbf@e0^Ht?=TUJ$0xh;J+U3 ze%W@i8wv(WXyOehXz-}<`k;xk9|38`D|k_ADOng^g`iJ)?eR)JGC`|H=a5=t?^BC5%E zovV$9S%C8gWmFu>IgEGpfWM7n3>E;;nh!*__}2K#S^PJxES+@#q+?HO&!%h4#e3qQ zx2prYYU$S_H`5jqsvqIAX%z`t{064ZyGH3P8STO z5k&a8IUd{G)Pl7q#o#V?IN007OisqSPe+N$^lJ#|UV+Ce@k61^$NkIBUPJ#c8?dHwOwJrs4 z?-QU2Se+qWO@PLR1-WS8_Dk2UvJe^Oa(~1)coWEeyXc}G zC~he!DL~o<)f>YPbh-hJ6VR4}xo|VT4WwEEZU>_^sJ##ma5ds|=C1HL2;SDVwuOFA zE>SB>OSj1|S>Po-1|BsOID!4guCR^Zoq?PHa|9oGEtD3K_7HU-XTmgAP7cTp@7pbaH#r5}Cfqnvg$ zwt?Wk-(5v92t6Gatln-b#l#PFbZ|fJ`rOXd)ZVUSSc`Rp&8iDRHr%KL{60Jb0`{yF zqk9c1ouFVbi1ArjHzVZX)hW!Cxt~8zg41NTp%$wGoTK;pS~0;&kA&&1eN9yVyjcva ziOJSl_qc~htNO4isOXCk^y^EtOHYbR2}0SmyG{mO-DJ*^3E&jmJ;PP;)~8?(uveF) z8_d>;fkZE2w*=I5x`q{S4zpZfE{(2oLb4I!fI9IUgaI(RglA7M#@X#p+wJd-9aMq= z6JD2v-F@-p%a=Esya&s{3_$%iGUTMEyU(UX(z}g62k)gwWyNaYJnL%$_nxj{ZEd}? zzY19z@;p5KQ7vU;#zfv61OeTda%`mxW~$Pr06!;AHyt=*COa@NFjnHxK!|f;&`1GC zk2<6E2>}E}*i$%(6H`!C!* zLYLrOK!V)()W+%qDG|&xKYFrgA@(lxziYRXzM>smc|ZzgRL6 z0wy(>J1P9~#k}Ul@!4XFO^1&x`5u&@t{6lA3}seu_-U=SMO=h|5Hw+02JU7+3Ik38 z(+Jk>&F+iiXXw4xI>EFSV_P;mXq~h0IEKah`+_ju_8n>7RI1TmLn z5%ORmgTWLmVsyouF=NbQJ`0|))(%Crh=f3<3{Mo8E8QZ!ft-UGImiQF5_DXDUyIu^ ziXUG}#ZeXy>;-s;BmnEtY?|MqkDHx>^?^bhw_2W)N)W{sj1!ZQK@b5EVnG2__rEdGPMiC7AMOJ_ z2|p;#IeYJKSZjUjm~G#^ev{^J2_fXQ3Q^nqQc~SnxK)L6fVwF)q1NfJJ2$?m+c!^q z`&u{OX<;$l^lQbZG8s_+llswaGrYXKSV>IYPRSA(;OaW_QCOO$@gJKXmHbYk9Z9_< zgM>cKnNCe;yUk25BSmKd>WUUt+(O19qIu5!P#!6Fx2dFlWD&4@QwziZpixA`RYa8MCrk1J9q9JiJ&$t-g(#=rq(Dj zYO1O{*I#}|2s_#<|QAOSJlv3CGzx)45y9bWt807SUj~%DCTekxLf?EKfbJx>Y`i^jvr}l zos=-3sGy&LWZjVUE~XFCh3CNc!=vLPulnW~e{NzkGBNqhA2*FpJu}QjdXrdoHEz~WD6|Dhn z-s5oRM@K^a(H7A)B1EFJX|jy(m?gPXH;ZL`&L5Y*d6s&(HL&JC0uHwPIswaT4*GoJ zc_t;r=0z0{p<;+&!GdQLrZc3Xx)7d^U`^Kx3#SG>S1IEjbx_8}mKBS$iRATp-p~`qUNta4FOupL-Brfk<{Y1rbFH9Y?(qf5$;ovlS!{8# zJ-e3fK+O;ba||=3?=#ay4@~6Sm7%okzoXnKW-Y}SYR-^(^R83Zwq7#mC%}-w8Z#Ff zkwtlX3uOsS)z=aN%iT2AkG=Mjr{x_DlyaV%i{R?kzz{+`y6g&GR;}q z3WN|?*I*-Z>73&fkSXfMOcKH_VzCj*hzGLqaP&IUa>{^?cN%uyGebE^!19 zR3sfhW3FCD0avy@&lE}QU4T%Y6=}Apsqu*2#+rwhBZ+c?>>?f0eV$HF7eKeLDj=OY z$^*1ZY8{v4hIi3j%=h%{L>xQ@6;Wkkpe7qwP+$a{N2}4J2Lngvn>M|kz;&M^rElI& zZ4PK-oth=!6%IK_``bg_x2pU@FNt>BT{fBMZ*z>PmN)>}HHZAP^4&6IOY2x+&Ww%h zsT%?_=V5U6*$znfWPfhzY;1gqiWFL-^$?L_$pPsvnffD5@J=4|+_?qJ1-qZw20XiT zX$hjn;*2z(FPpbdnK6Ydop*AudmqWVOd6?;E~K70Bl_c`A>vdAS8%)7tJR?QTeF-7 z+Q730HdXDcuc@w%eK0eRs+XPkjb)lE$?u#`8nn8@Y5|6ZIbP0BN>1*2I|HsqAQB!P8dLuX z4eHnd5{v#U{@s^Y#6B?Azx&=)aqoqFf6koyN*)kBm;(|_l$Wc<5IlK(!Uku?LPy=| zrA;8igA6na`Dp#0-DUtb068JYw6`ri=jTD*$zS`lk%8%k^CdZvH+4?0e!ZqUuTn4) zlSET=U|eOcz9To4gvPr5YhG=*<>c|?)~ds2>5mhWQsyYGu-ocWDA+i?3Q`(T@Dn2! zz=gtY$O5MJ9(k5iP*hr)#UZzf@V{8S|HxDahdr|dtd1uEm7xcDl!yf^G+5)kaG{u$ z)T$zFM5Kf@WfFSSK9NC5qnpb&J#vx$h1$7bY=+UmfkAN-B2>iB6jV@r0%4R9%ekp( zw2c`R;cDvsTPLNE{bqI>R=Uq*_%LU6@d0g4uH{1wezaUt#C)h=h;p z6+03$WCi1qJX8Vx@BIeG~r+?*d){ z(A52)jt(eN^p#v%{f+1XNC=F`cL-F8x`@dlR7PhD`Vz*77Plj9{Y&va&a)jHm#;KJGQ=n4i z55*Z~->oBQgwvNRg_p3R9 z;r)U@qlizioQK*oao+I-aad=3 zw_`wuZ>Cf2>cS8Q9XX0LMuBtOc4{zSL3xI3*`tw+YHjOhuDcRu`mY@>C7-F(G&&FS z5&MdB0@wL}N+>k5K*GnpT?sK6B_z9ss2l(9$`ph^hL{ z7G(3=o(3CAI-4)5fDS-z6df6g4tT9x5Fu)?x@}v7Pg2*688dW}zvr^3J4X}j3a(x? zlh+;v5#?m<95OMnAOg!Y?)Zg9sJ6u3S2Hloz=0F1fg2Ro)l3)r)^C z!Lj&s4?^<6oLL!1h2huwRZW&D9f!Tp-U1~sy?p^$6LlqG6FsItMVjNmPAdDx3m-Fo zgVj;;sZ&h)e3qd$xTK%=3d;w)06sD@HrBW0Iq5oxr<|??rN^s=v$#%YQF$2mnwimN z*B8gv1sC)iI{EJ{6Uy1i{A{SgI^Dz7I&%+;%FT965oF;VWxE0PC zS)d($Kp#SethxK1EZA_1K89l76A+^T8;U@Ee5>=YacBg<#WUS!T(zn^JlOce@wmL( ztA2zC$T_oI;5%fxofSjgTR!d4+UF!Z<@!P!`KATal*1z~uds>d?$*<_=?{Ru-7&>{~a&K?%W&Pf`lmQK_bRA{*)*u{_I^+Yl zG{w$0)Fy*w!R-SJZt06Zx5;nJ=Qh`W+H&jDTX& z(l+3M6YcQq`#7v?X^s`{_L)C(K257DB}aktYh^;`ju5vMCcQK}G#I3VYeZdp7Rset zd1IYY8?uBc5OhJIsH2b`kLtgpz(zd=W}shQ@5xc|iela6Wu2F?z?lG;3`b}ckphy{ z8jSH>3$9Pt+wz{HPnnIRLEEXS{ddv@^dze_5Le=wvJV)BxyHky<8z~j z+U;FGC^!4FaFkvT(u28BFqcL_2JvbW<}07Kes~B=2UH^fBCUStg}Cq{#Z(4>(Q?_N z)&X61mIi>yb^XJs6NU73M*hOJ#c>0TjoC<(!UFqjN#B{fn(lItiod0N1MHfkRK9SCKteHCiJ{YgeUwUXV&2L245|LgV}|s7Sn6)xJWafA$?x`C zaOMatgxm=32@z~X*a&eet|tu=vN6=CMN)5LYpXx&)NyuKLN8kDr*N*Osdm7@K|w*< z8^R=n-dP!C1QbZ457&pg@hvnb)ry}aQwrK*&Vvp{sA%L{&8Ij3S>UDgE&3G3#G_5^ z_vg4lK*%pcY{bNbGR$KY0R?ck*{m%c@gk%!3ZLV-yydADK=xk2^6*fDuD$aO-9lle z%SI|ap8+7+cx48#CxqYzMmsVxa=;Eoz(3Y1%n?8od#nLZX9|l6*QU(+6!aJZCr5k% zPX!(yf}Y1#{Ul8sA-*3bpCO6UruMk1Ij3vXW)8X9Wk0)8en%7z#Q83Ar`T-##k)b`DlD3juL;b8eISwmmg zBmUX<_Jy@>E0W2+Hji9eo^>(RN7A+nZ7nE;kaa=S00gaGv!=5-TG6Rgv@4}Xj?cay zZW?z?_s{?8S6x*#W=UFnrB}1$@Yk)f`{>s-NsE%%S3dYe1KznSw8aScVViU%xm`=S zIY>A|P9}^JacQh~mT;4c<4t@2q9x$*Xn4ZOVsmDDCM@m#c6aL+`BJhRX-_V%F= zgK!}D6TZ|YG;Dv$I{723!Le0Sp-|xUS5ZDKSNP4|`b>8^JG%>M4}@bIu)3B|9xjYH z0G`dF+1c-9#~(fV?m^ceg~hBHaPB_~4Ju4{4c1F;{^17 z571OAe{)N?KcF)jzs9VUOto9)$gdb{(*H)_s;a38PiltcgGxgtyrqwr3+c0c{{M?F sxD?42*I)D;{9pfL_b~Tw;tlPJBIA`2Ti;NBCw^_Vi<@)G^yQ!b4|-ZdF8}}l literal 0 HcmV?d00001 diff --git a/plugins/supercomputer/2.png b/plugins/supercomputer/2.png new file mode 100644 index 0000000000000000000000000000000000000000..b6f22366b0612a494e08d238cb4915eeb111172f GIT binary patch literal 18179 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 literal 0 HcmV?d00001 diff --git a/plugins/supercomputer/4.png b/plugins/supercomputer/4.png new file mode 100644 index 0000000000000000000000000000000000000000..efcf31e4e71f83b2f459a3f83cf97fd460994f30 GIT binary patch literal 72902 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 QBmV7#yvnh(qvvn@AAlCa=l}o! literal 0 HcmV?d00001 diff --git a/plugins/supercomputer/README.md b/plugins/supercomputer/README.md new file mode 100644 index 000000000..1a183b9be --- /dev/null +++ b/plugins/supercomputer/README.md @@ -0,0 +1,61 @@ +# Supercomputer + +This adds some features that are useful on supercomputers running the Slurm-Tool +for job-allocation. + + +```zsh +plugins=(... supercomputer) +``` + +## Aliases + +| Aliases | Command | Description | +| :------------ | :----------------- | :------------------------------------- | +| sq | `squeue -u $USER` | Get jobs of the current user | + +## Functions + +* `treesizethis`: Lists largest folders/files in current directory + +* `slurmlogpath $SLURMID`: Returns the path of the `.out`-file of the `$SLURMID` + +* `pretty_csv`: Pipe CSV files into this and it will auto-format them as table + +* `showmyjobsstatus`: Lists your jobs and shows their estimated starting time (needs `whypending`) + +* `ftails $SLURMJOB`: Follows the `.out`-file of the job `$SLURMID`. If no ID is given, it follows + the first job available by `squeue -u $USER` + +* `countdown $SECONDS`: Shows a blocking countdown timer that lasts for `$SECONDS` seconds + +* `mongodbtojson $IP $PORT $DB`: Creates a JSON-file from that mongodb-database + +* `rtest`: Creates a random non-existant `test`-folder in the form of `$HOME/test/randomtest_$RANDOM` + +* `mcd $NAME`: `mkdir $NAME; cd $name` + +* `echoerr $MSG`: Prints a message to STDERR + +* `red_text $MSG, green_text $MSG, debug_code $MSG`: Prints messages on different colors + +* `warningcolors`: Sets warning-colors variables for whiptail + +# Slurminator + +Enter `slurminator` to get a `whiptail`-GUI from which you can control jobs, kill, +send signals to multiple jobs at once, tail multiple jobs at once, control workspaces +(if available) and a lot more. + +![Screenshot 1](1.png?raw=true "Screenshot") + +![Screenshot 2](2.png?raw=true "Screenshot") + +![Screenshot 3](3.png?raw=true "Screenshot") + +![Screenshot 4](4.png?raw=true "Screenshot") + + +## Requirements + +You need a working Slurm-Installation with ZSH for this. Also, whiptail for the Slurminator. diff --git a/plugins/supercomputer/supercomputer.zsh b/plugins/supercomputer/supercomputer.zsh new file mode 100644 index 000000000..8f8c2d683 --- /dev/null +++ b/plugins/supercomputer/supercomputer.zsh @@ -0,0 +1,639 @@ +# https://github.com/NormanTUD/ohmyzsh + + +# Aliases ################################################################### + +if command -v squeue; then + alias sq="squeue -u $USER" +fi + +# Functions ################################################################# + +function treesizethis { + du -k --max-depth=1 | sort -nr | awk ' + BEGIN { + split("KB,MB,GB,TB", Units, ","); + } + { + u = 1; + while ($1 >= 1024) { + $1 = $1 / 1024; + u += 1 + } + $1 = sprintf("%.1f %s", $1, Units[u]); + print $0; + } + ' +} + +if command -v scontrol; then + function slurmlogpath { + if command -v scontrol &> /dev/null; then + if command -v grep &> /dev/null; then + if command -v sed &> /dev/null; then + debug_code "scontrol show job $1 | grep StdOut | sed -e 's/^\\s*StdOut=//'" + scontrol show job $1 | grep StdOut | sed -e 's/^\s*StdOut=//' + else + red_text "sed not found" + fi + else + red_text "grep not found" + fi + else + red_text "scontrol not found" + fi + } +fi + +function pretty_csv { + perl -pe 's/((?<=,)|(?<=^)),/ ,/g;' "$@" | column -t -s, | less -F -S -X -K +} + +if command -v squeue; then + if command -v whypending; then + function showmyjobsstatus { + if [ $# -eq 0 ]; then + for i in $(squeue -u $USER | grep -v JOBID | sed -e 's/^\s*//' | sed -e 's/\s.*//'); do + echo ">>>>>> $i"; whypending $i | egrep "(Position in)|(Estimated)"; + done + else + echo ">>>>>> $i"; whypending $1 | egrep "(Position in)|(Estimated)"; + fi + } + fi + + if command -v slurmlogpath; then + function ftails { + if [ $# -eq 0 ]; then + SLURMID=$(squeue -u $USER | cut -d' ' -f11- | sed -e 's/\s.*//' | egrep -v "^\s*$" | sort -nr | head -n1) + if [ ! -z $SLURMID ]; then + tail -f $(slurmlogpath $SLURMID) + fi + else + tail -f $(slurmlogpath $1) + fi + } + fi +fi + +function countdown() { + secs=$1 + shift + msg=$@ + while [ $secs -gt 0 ] + do + printf "\r\033[KWaiting %.d seconds $msg" $((secs--)) + sleep 1 + done + echo +} + + +function mongodbtojson { + ip=$1 + port=$2 + dbname=$3 + mongo --quiet mongodb://$ip:$port/$dbname --eval "db.jobs.find().pretty().toArray();" +} + +function rtest { + set -x + RANDOMNUMBER=$(shuf -i 1-100000 -n 1) + while [[ -e "$HOME/test/randomtest_$RANDOMNUMBER" ]]; do + RANDOMNUMBER=$(shuf -i 1-100000 -n 1) + done + mkdir -p "$HOME/test/randomtest_$RANDOMNUMBER" + cd "$HOME/test/randomtest_$RANDOMNUMBER" + set +x +} + +mcd () { + mkdir -p -p $1 + cd $1 +} + + +echoerr() { + echo "$@" 1>&2 +} + +function red_text { + echoerr -e "\e[31m$1\e[0m" +} + +function green_text { + echoerr -e "\e[92m$1\e[0m" +} + +function debug_code { + echoerr -e "\e[93m$1\e[0m" +} + +function warningcolors { + echo ' +window=,red +border=white,red +textbox=white,red +button=black,white +' +} + + +if command -v scontrol; then + if command -v ws_list; then + function get_filesystem_workspace { + ws=$1 + ws_list | perl -e 'my %struct = (); my $current_id = q##; while (<>) { if(m#^id: (.*)$#) { $current_id = $1 } elsif (m#filesystem\s*name\s*:\s*(.*)?$#) { $struct{$current_id} = $1 } }; foreach my $key (keys %struct) { print "$key--->$struct{$key}\n" }' | grep "^$ws--->" | sed -e "s/^$ws--->//" + } + fi + + + function get_job_name { + if command -v screen &> /dev/null; then + scontrol show job $1 | grep JobName | sed -e 's/.*JobName=//' + else + red_text "Program scontrol does not exist, cannot run it" + fi + } + + function run_commands_in_parallel { + args=$# + if command -v screen &> /dev/null; then + if command -v uuidgen &> /dev/null; then + THISSCREENCONFIGFILE=/tmp/$(uuidgen).conf + for (( i=1; i<=$args; i+=1 )); do + thiscommand=${@:$i:1} + echo "screen $thiscommand" >> $THISSCREENCONFIGFILE + echo "title '$thiscommand'" >> $THISSCREENCONFIGFILE + if [[ $i -ne $args ]]; then + echo "split -v" >> $THISSCREENCONFIGFILE + echo "focus right" >> $THISSCREENCONFIGFILE + fi + done + if [[ -e $THISSCREENCONFIGFILE ]]; then + echo $THISSCREENCONFIGFILE + cat $THISSCREENCONFIGFILE + screen -c $THISSCREENCONFIGFILE + rm $THISSCREENCONFIGFILE + else + echo "$THISSCREENCONFIGFILE not found" + fi + else + echo "Command uuidgen not found, cannot execute run_commands_in_parallel" + fi + else + echo "Command screen not found, cannot execute run_commands_in_parallel" + fi + } + + function multiple_slurm_tails { + if command -v screen &> /dev/null; then + if command -v uuidgen &> /dev/null; then + THISSCREENCONFIGFILE=/tmp/$(uuidgen).conf + for slurmid in "$@"; do + logfile=$(slurmlogpath $slurmid) + if [[ -e $logfile ]]; then + echo "screen tail -f $logfile" >> $THISSCREENCONFIGFILE + echo "title '$(get_job_name $slurmid) ($slurmid)'" >> $THISSCREENCONFIGFILE + if [[ ${*: -1:1} -ne $slurmid ]]; then + echo "split -v" >> $THISSCREENCONFIGFILE + echo "focus right" >> $THISSCREENCONFIGFILE + fi + fi + done + if [[ -e $THISSCREENCONFIGFILE ]]; then + debug_code "Screen file:" + cat $THISSCREENCONFIGFILE + debug_code "Screen file end" + screen -c $THISSCREENCONFIGFILE + rm $THISSCREENCONFIGFILE + else + red_text "$THISSCREENCONFIGFILE not found" + fi + else + red_text "Command uuidgen not found, cannot execute multiple tails" + fi + else + red_text "Command screen not found, cannot execute multiple tails" + fi + } + + + + function kill_multiple_jobs_usrsignal { + FAILED=0 + if ! command -v squeue &> /dev/null; then + red_text "squeue not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v scancel &> /dev/null; then + red_text "scancel not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v whiptail &> /dev/null; then + red_text "whiptail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if [[ $FAILED == 0 ]]; then + TJOBS=$(get_squeue_from_format_string "'%A' '%j (%t, %M)' OFF") + chosenjobs=$(eval "whiptail --title 'Which jobs to kill with USR1?' --checklist 'Which jobs to choose USR1?' $WIDTHHEIGHT $TJOBS" 3>&1 1>&2 2>&3) + if [[ -z $chosenjobs ]]; then + green_text "No jobs chosen to kill" + else + NEWT_COLORS=$(warningcolors) + if (whiptail --title "Really kill multiple jobs ($chosenjobs)?" --yesno --defaultno --fullbuttons "Are you sure you want to kill multiple jobs ($chosenjobs)?" 8 78); then + debug_code "scancel --signal=USR1 --batch $chosenjobs" + eval "scancel --signal=USR1 --batch $chosenjobs" + NEWT_COLORS='' + return 0 + fi + NEWT_COLORS='' + fi + fi + return 1 + } + + function kill_multiple_jobs { + FAILED=0 + if ! command -v squeue &> /dev/null; then + red_text "squeue not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v scancel &> /dev/null; then + red_text "scancel not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v whiptail &> /dev/null; then + red_text "whiptail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if [[ $FAILED == 0 ]]; then + TJOBS=$(get_squeue_from_format_string "'%A' '%j (%t, %M)' OFF") + chosenjobs=$(eval "whiptail --title 'Which jobs to kill?' --checklist 'Which jobs to choose?' $WIDTHHEIGHT $TJOBS" 3>&1 1>&2 2>&3) + if [[ -z $chosenjobs ]]; then + green_text "No jobs chosen to kill" + else + NEWT_COLORS=$(warningcolors) + if (whiptail --title "Really kill multiple jobs ($chosenjobs)?" --yesno --defaultno --fullbuttons "Are you sure you want to kill multiple jobs ($chosenjobs)?" 8 78); then + debug_code "scancel $chosenjobs" + eval "scancel $chosenjobs" + NEWT_COLORS='' + return 0 + fi + NEWT_COLORS='' + fi + fi + return 1 + } + + function tail_multiple_jobs { + FAILED=0 + AUTOON=OFF + + if [[ $1 == 'ON' ]]; then + AUTOON=ON + fi + + if ! command -v squeue &> /dev/null; then + red_text "squeue not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v tail &> /dev/null; then + red_text "tail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v whiptail &> /dev/null; then + red_text "whiptail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v screen &> /dev/null; then + red_text "screen not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if [[ $FAILED == 0 ]]; then + TJOBS=$(get_squeue_from_format_string "'%A' '%j (%t, %M)' $AUTOON") + chosenjobs=$(eval "whiptail --title 'Which jobs to tail?' --checklist 'Which jobs to choose for tail?' $WIDTHHEIGHT $TJOBS" 3>&1 1>&2 2>&3) + if [[ -z $chosenjobs ]]; then + green_text "No jobs chosen to tail" + else + #whiptail --title "Tail for multiple jobs with screen" --msgbox "To exit, press , then <\\>" 8 78 3>&1 1>&2 2>&3 + eval "multiple_slurm_tails $chosenjobs" + fi + fi + } + + function single_job_tasks { + chosenjob=$1 + gobacktoslurminator="$2" + + if ! command -v scontrol &> /dev/null; then + red_text "scontrol not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v tail &> /dev/null; then + red_text "tail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + WHYPENDINGSTRING="" + if command -v whypending &> /dev/null; then + WHYPENDINGSTRING="'w)' 'whypending'" + fi + + SCANCELSTRING="" + if command -v scancel &> /dev/null; then + SCANCELSTRING="'k)' 'scancel' 'c)' 'scancel with signal USR1'" + fi + + TAILSTRING="" + if command -v tail &> /dev/null; then + TAILSTRING="'t)' 'tail -f'" + else + red_text "Tail does not seem to be installed, not showing 'tail -f' option" + fi + + jobname=$(get_job_name $chosenjob) + whiptailoptions="'s)' 'Show log path' $WHYPENDINGSTRING $TAILSTRING $SCANCELSTRING 'm)' 'go to main menu' 'q)' 'quit slurminator'" + whattodo=$(eval "whiptail --title 'Slurminator >$jobname< ($chosenjob)' --menu 'What to do with job >$jobname< ($chosenjob)' $WIDTHHEIGHT $whiptailoptions" 3>&2 2>&1 1>&3) + case $whattodo in + "s)") + debug_code "slurmlogpath $chosenjob" + slurmlogpath $chosenjob + ;; + "t)") + chosenjobpath=$(slurmlogpath $chosenjob) + debug_code "tail -f $chosenjobpath" + tail -f $chosenjobpath + ;; + "w)") + debug_code "whypending $chosenjob" + whypending $chosenjob + ;; + "k)") + NEWT_COLORS=$(warningcolors) + if (whiptail --title "Really kill >$jobname< ($chosenjob)?" --yesno --defaultno --fullbuttons "Are you sure you want to kill >$jobname< ($chosenjob)?" 8 78); then + debug_code "scancel $chosenjob" + scancel $chosenjob && green_text "$jobname ($chosenjob) killed" || red_text "Error killing $jobname ($chosenjob)" + fi + NEWT_COLORS="" + ;; + "m)") + slurminator + ;; + "c)") + NEWT_COLORS=$(warningcolors) + if (whiptail --title "Really kill with USR1 >$jobname< ($chosenjob)?" --yesno --defaultno --fullbuttons "Are you sure you want to kill >$jobname< ($chosenjob) with USR1?" 8 78); then + debug_code "scancel --signal=USR1 --batch $chosenjob" + scancel --signal=USR1 --batch $chosenjob && green_text "$chosenjob killed" || red_text "Error killing $chosenjob" + fi + NEWT_COLORS="" + ;; + "q)") + green_text "Ok, exiting" + ;; + esac + + if [[ $gobacktoslurminator -eq '1' ]]; then + slurminator + fi + } + + function get_squeue_from_format_string { + if ! command -v squeue &> /dev/null; then + red_text "squeue not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if [[ $FAILED == 0 ]]; then + for line in $(squeue -u $USER --format $1 | sed '1d'); do + echo "$line" | tr '\n' ' '; + done + fi + } + + function show_accounting_data { + FAILED=0 + if ! command -v sreport &> /dev/null; then + red_text "sreport not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v whiptail &> /dev/null; then + red_text "whiptail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if [[ $FAILED == 0 ]]; then + whiptailoptions="'t)' 'Show accounting data as tree' 'o)' 'Show top user accounting' 'm)' 'Show top user accounting for this month'" + WIDTHHEIGHT="$LINES $COLUMNS $(( $LINES - 18 ))" + whattodo=$(eval "whiptail --title 'Accounting data' --menu 'Show accounting information' $WIDTHHEIGHT $whiptailoptions" 3>&2 2>&1 1>&3) + NUMBEROFLINES=$(( $LINES - 5 )) + case $whattodo in + "t)") + debug_code "sreport cluster AccountUtilizationByUser tree" + sreport cluster AccountUtilizationByUser tree + ;; + "o)") + debug_code "sreport user top start=0101 end=0201 TopCount=$NUMBEROFLINES -t hourper --tres=cpu,gpu" + sreport user top start=0101 end=0201 TopCount=$NUMBEROFLINES -t hourper --tres=cpu,gpu + ;; + "m)") + debug_code "sreport user top start=0101 end=0201 TopCount=$NUMBEROFLINES -t hourper --tres=cpu,gpu Start=`date -d "last month" +%D` End=`date -d "this month" +%D`" + sreport user top start=0101 end=0201 TopCount=$NUMBEROFLINES -t hourper --tres=cpu,gpu Start=`date -d "last month" +%D` End=`date -d "this month" +%D` + ;; + esac + else + red_text "Missing requirements, cannot run show_accounting_data" + fi + } + + function show_workspace_options_single_job { + ws=$1 + gobacktomain="$2" + + EXTENDSTRING="" + if command -v ws_extend &> /dev/null; then + EXTENDSTRING="'e)' 'extend workspace 100 days' 'j)' 'extend workspace custom number of days'" + fi + + RELEASESTRING="" + if command -v ws_release &> /dev/null; then + RELEASESTRING="'r)' 'release workspace'" + fi + + whiptailoptions="$EXTENDSTRING $RELEASESTRING 'm)' 'go to main menu' 'q)' 'quit slurminator'" + whattodo=$(eval "whiptail --title 'Slurminator workspace $ws' --menu 'What to do with workspace $ws' $WIDTHHEIGHT $whiptailoptions" 3>&2 2>&1 1>&3) + case $whattodo in + "e)") + filesystem=$(get_filesystem_workspace $ws) + debug_code "ws_extend -F $filesystem $ws 100" + ws_extend -F $filesystem $ws 100 + ;; + "j)") + filesystem=$(get_filesystem_workspace $ws) + days=$(whiptail --inputbox "How many days to extend workspace?" 8 78 100 --title "Please enter a number of days" 3>&1 1>&2 2>&3) + re='^[0-9]+$' + if ! [[ $days =~ $re ]] ; then + red_text "error: Not a number" + else + debug_code "ws_extend -F $filesystem $ws $days" + ws_extend -F $filesystem $ws $days + fi + ;; + "r)") + NEWT_COLORS=$(warningcolors) + if (whiptail --title "Are you sure you want to release $ws?" --yesno --defaultno --fullbuttons "Are you sure you want to release workspace $ws?" 8 78); then + debug_code "ws_release $ws" + ws_release $ws + fi + NEWT_COLORS="" + ;; + "m)") + show_workspace_options + ;; + "q)") + green_text "Ok, exiting" + gobacktomain=0 + ;; + esac + + if [[ $gobacktomain -eq '1' ]]; then + show_workspace_options + fi + } + + function show_workspace_options { + FAILED=0 + if ! command -v whiptail &> /dev/null; then + red_text "whiptail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v ws_list &> /dev/null; then + red_text "ws_list not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v ws_allocate &> /dev/null; then + red_text "ws_allocate not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v ws_extend &> /dev/null; then + red_text "ws_extend not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v ws_release &> /dev/null; then + red_text "ws_release not found. Cannot execute slurminator without it" + FAILED=1 + fi + if [[ $FAILED == 0 ]]; then + existingworkspaces=$(ws_list | perl -e 'my %struct = (); my $current_id = q##; while (<>) { if(m#^id: (.*)$#) { $current_id = $1 } elsif (m#remaining time\s*:\s*(.*)?$#) { $struct{$current_id} = $1 } }; foreach my $key (keys %struct) { print qq#"$key" "$struct{$key}" # }') + chosenjob=$(eval "whiptail --title 'Which workspaces to do something with?' --menu 'Which workspace?' $WIDTHHEIGHT $existingworkspaces 'r)' 'reload' 'm)' 'go to main menu' 'q)' 'quit slurminator'" 3>&1 1>&2 2>&3) + if [[ $chosenjob == 'm)' ]]; then + slurminator + elif [[ $chosenjob == 'q)' ]]; then + green_text "Ok, exiting" + elif [[ $chosenjob == 'r)' ]]; then + show_workspace_options + else + show_workspace_options_single_job $chosenjob 1 + fi + else + red_text "Cannot run show_workspace_options because of missing programs" + fi + } + + function slurminator { + FAILED=0 + + NEWT_COLORS="" + + if ! command -v squeue &> /dev/null; then + red_text "squeue not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v whiptail &> /dev/null; then + red_text "whiptail not found. Cannot execute slurminator without it" + FAILED=1 + fi + + if ! command -v scontrol &> /dev/null; then + red_text "scontrol not found. Cannot execute slurminator without it" + FAILED=1 + fi + + SCANCELSTRING="" + if command -v scancel &> /dev/null; then + SCANCELSTRING="'k)' 'kill multiple jobs' 'n)' 'kill multiple jobs with USR1'" + fi + + ACCOUNTINGSTRING="" + if command -v sreport &> /dev/null; then + ACCOUNTINGSTRING="'a)' 'Show accounting data'" + fi + + TAILSTRING="" + if command -v tail &> /dev/null; then + if command -v screen &> /dev/null; then + TAILSTRING="'t)' 'tail multiple jobs' 'e)' 'tail multiple jobs (all enabled by default)'" + else + red_text "Screen could not be found, not showing 'tail multiple jobs' option" + fi + else + red_text "Tail does not seem to be installed, not showing 'tail multiple jobs'" + fi + + WORKSPACESSTRING="" + if command -v ws_list &> /dev/null; then + WORKSPACESSTRING="'w)' 'show options for workspaces'" + else + red_text "ws_list does not seem to be installed" + fi + + FULLOPTIONSTRING="$JOBS $SCANCELSTRING $TAILSTRING $ACCOUNTINGSTRING $WORKSPACESSTRING" + + if [[ $FAILED == 0 ]]; then + WIDTHHEIGHT="$LINES $COLUMNS $(( $LINES - 8 ))" + JOBS=$(get_squeue_from_format_string "'%A' '%j (%t, %M)'") + chosenjob=$( + eval "whiptail --title 'Slurminator' --menu 'Welcome to Slurminator' $WIDTHHEIGHT $FULLOPTIONSTRING 'r)' 'reload slurminator' 'q)' 'quit slurminator'" 3>&2 2>&1 1>&3 + ) + + if [[ $chosenjob == 'q)' ]]; then + green_text "Ok, exiting" + elif [[ $chosenjob == 'r)' ]]; then + slurminator + elif [[ $chosenjob == 't)' ]]; then + tail_multiple_jobs + elif [[ $chosenjob == 'e)' ]]; then + tail_multiple_jobs ON + elif [[ $chosenjob == 'n)' ]]; then + kill_multiple_jobs_usrsignal || slurminator + elif [[ $chosenjob == 'k)' ]]; then + kill_multiple_jobs || slurminator + elif [[ $chosenjob == 'a)' ]]; then + show_accounting_data + elif [[ $chosenjob == 'w)' ]]; then + show_workspace_options + else + single_job_tasks $chosenjob 1 + fi + else + red_text "Missing requirements, cannot run Slurminator" + fi + } +fi