From 1fb15a0ea076ca5d35196d1d113f4f133dc74a7e Mon Sep 17 00:00:00 2001 From: ntoff Date: Thu, 23 Mar 2017 07:17:16 +1000 Subject: [PATCH] estop plugin --- README.md | 25 +++++ extras/assets/img/plugins/estop/disabled.PNG | Bin 0 -> 13443 bytes extras/assets/img/plugins/estop/enabled.PNG | Bin 0 -> 12019 bytes extras/estop.md | 45 +++++++++ octoprint_estop/__init__.py | 23 +++++ octoprint_estop/static/css/estop.css | 63 ++++++++++++ octoprint_estop/static/js/estop.js | 25 +++++ .../templates/estop_sidebar.jinja2 | 4 + setup.py | 94 ++++++++++++++++++ translations/README.txt | 28 ++++++ 10 files changed, 307 insertions(+) create mode 100644 README.md create mode 100644 extras/assets/img/plugins/estop/disabled.PNG create mode 100644 extras/assets/img/plugins/estop/enabled.PNG create mode 100644 extras/estop.md create mode 100644 octoprint_estop/__init__.py create mode 100644 octoprint_estop/static/css/estop.css create mode 100644 octoprint_estop/static/js/estop.js create mode 100644 octoprint_estop/templates/estop_sidebar.jinja2 create mode 100644 setup.py create mode 100644 translations/README.txt diff --git a/README.md b/README.md new file mode 100644 index 0000000..3425719 --- /dev/null +++ b/README.md @@ -0,0 +1,25 @@ +# Emergency Stop + +Add a big ugly emergency stop to your sidebar. It's big, it's yellow, it's red, it's impossible to miss. That's the point. +![](/extras/assets/img/plugins/estop/enabled.PNG) +## Setup + +Install via the bundled [Plugin Manager](https://github.com/foosel/OctoPrint/wiki/Plugin:-Plugin-Manager) +or manually using this URL: + + https://github.com/ntoff/OctoPrint-Estop/archive/master.zip + +## Position + +Once installed, you may wish to move the button to the top of the sidebar, you can do so by modifying the [config.yaml](http://docs.octoprint.org/en/master/configuration/config_yaml.html) file as follows: + +Find the "appearance" section, and add the plugin to the top of the sidebar order. If no other components have been previously rearranged, you may end up with only the plugin in the order list, this is fine, you don't need to add every item to the list (not adding them won't stop them from showing up). + + appearance: + color: violet + components: + order: + sidebar: + - plugin_estop + +Please note: White spaces are critical inside the config.yaml file, special care must be taken when adding or removing entries that the correct layout is maintained. For more information on config.yaml and its appearance section, see here: http://docs.octoprint.org/en/master/configuration/config_yaml.html#appearance diff --git a/extras/assets/img/plugins/estop/disabled.PNG b/extras/assets/img/plugins/estop/disabled.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b168ffa8fd99ed6e28b97bedba7a700bc5fad2e0 GIT binary patch literal 13443 zcmb_@c|6qb+JA%WyM(NhP|2Q*y#^s6DzYbv5QE4zV`PxXD3yIz_7Soq%VZmpEz8)A zt+DT88QbrpbDnda=X<{AIp;jD-yidu`?K70FV}Tn*ZX>3*M#3P&}O1PLx1AL2_{_~ zP2&?MKoH=QM@tRdN$tLO7We{r8f!yOU^@8bfD0;zYx>ttoG3;!?Ax9MuIXSpW}YWb zFgF~3KsdJ?`x7TFbL(neyW?ZMlngI;XzDwrEp(`nM+G%Hckbey3oS=ft(U3kPNHVR zdQEzy*jw*@7o;Nz@?X&HIqzf?glrvnn05JNbF>nZgaA7H8+O$;=JJQ|Z&S#%Xdd3- zV0E0}#!UQLqLn|bJ_Mvqd*L)SA2{nCHw+d1pp|-LrY$y~flKm^m|;pm3WEIjWkyaJt1R6hDl#F2 z7dEign|r%&cY~O(7b_`mK?k-Eh}LZpweKy6_M~KEx~NIUQi%>qMH8xinXLe zC^P!5RV644{{?uo{NwvYU^II>TPz#&DVmYOKSyh&==M1%g1nYu&FrCtTu~4Scuw z5r@xWTi@RJ=gg}4gyCRejU-LRlEI|htrez;l9hWKl^>Z^-1eQ0mK)kN^f@e*S0Ftu zC-e_Y?w32`?B=i9VPA8~+`y{BG-xaMm7R23fAqhFs=2VD4pXD(#Jt^{Aid zC$F-kl4s-6fFCe1bc~Pl)8Z)Sub#SfMwFivr7&jiHA8KbIUP6V>p$gQFa#e>cRC9H zH9_UF{rnOatW2Fr;Ty_v*>cj`OVZ~DQdspCUUioYKfi;0RO@%{ln9}8hjd!r{gNrB5vDUy6w#?>N*MeIc zSSrbu8&k=f#FWI!WRSK=Cj>;}(n6wB5VD=r6|G_tawstj{>DPVkCY+YdGT38tH}Nl zK4MRd!*XS+@YAP4=BQ1}`GcW+%mpt<#QL>&`JCG;^uqksu2^}yOlN6A%S&!40`}Wz zpVT?fHbdX?K4XEq*lREc?C`s`$+M^gp<+;W!;Lt&dLAKfER2b5ZJ!-IKh>y zx=v3@ZkWARBnM1QxKu z63En1@!s=un)giJlp(Yv0CFw-RgnXyl)UdWbXQNDH6zfxZcDr~(r*-m=QAXI#f|%) zr>nW*)ov0kAJoU(d=qLurHB@;=q_SvE>A(6AUXlw8@5vr&))Km$mMv)khaAwa`{_auLmwm8{35J#~ZfvOB-YR zE^QiwmNioMn#c)9(t=+bQM%rKT!@|gE@JiJ$puRg+fN4Sk>`!Eh3m!=j`I1rzdp=; zkJ4^=)PNL5onoMjVl}?R2!ZMpOA~0pP4)lcCIbzhmQk;04g&^woA=-E-F6-n#^R09 ztB~Kl>X@ljU1S+Qzn9+m-A^-x>&$#es9$=zwc|T$$DF@k{cfIKoA;&lYS$3&WSFVe z;C_5E)*97f{mId2rL&&HU6FQa996q=a?WIXp`To}pTbgTszBThaIC3PtRreH^tJD* z3J#@vc_KQ)`tuVv{M9~Nk0y<8q?6`<{rSu0OFbJd{VKid)wg1w(K>U$$PdaweFD#< z(9SM*If%eb{`cvI`aFyx#fP2kWN2S!ww0hTu!($6YG0^1mGUAuy_0@e)%Wj9y!(62 ze^_wS{=6~^xRZgj#%#NZEaejZnW9zQ^$a@xEcof3hmVIO_2B=fg%(K;`Tj~LhLHWj zq@A$7T$H+X?}@=GQYbZ*Yvw)=RLoNUCX7FwX-Jnsr^@E#)MxJ386YcAA^5kmoix7I zI^-ksxu(@dpPvGSfJlEY&t&ee0{$P1eRBwm-?u;3#3MqeW(b;oP^Ka{?F(Mo%}+bx z+JyQ%NMR`{+#K%zCsGURKNhZek!#1wZkOM`6mh?Lr%JE+kFO9wracky-#4zMaFx`$ z(M*JY=~B5?)x;5k820;fHCgKVZ`$;)2gGl5%CTrg_;Wc(P)OFqnfD8?S4R_71yi^U zj}$h2&&;cGZ5Eo=6Qfhv`sYAhFzhXbJqVY-jM~t{Ux^|(gPaE+S^EhN_7Ekn7 zvc$=|!JQ{#JlR<0Gt{Co;b)V$0w9JyhdcQ3GYb!RF~ll`S{ZWJchciJ9W=;Xr5VA^ zFsR*eaw>E!*pwl~|LEJon<~~0wu5IVqA>>Vr#Tsd*p_gMx6IzmtW83b9E${Kmbea5 zg+?r@1mF1U`Ii+4t_MUDLsW_sXuxg)(1z*=IX~7@mOulpGm_j15RNytAO+ZNzX>Ot6 z%ZpCGHI>QT#xHZ82hI5l{tVl%Bjr#<#Z2(kS-8;JV>5Ki22`;qIXGH@B|Uu%9C-#d zr`7wDD}Tl}U2&TdtDs#}xH~8s zDLwbZYAsEG;+N^zTGYUyZ`|cs^?oX>pw&jX593WCD-QG%{nx$w&ul#qsyB@n!MGH@V#vt0C=Nq*l%hSsERsO0rDdfxXI+C~FiW zrYI9J8_`3nQ!-@HsgXr7>jgY%+VYcNisxF}z*N+BTq8)~dgy+OJSl(LWh^8a8*bw}k7`dUe;OmC}iDR=D`4 z@3Ey~C94U#-ls|&feDh6pJ~tWZfH+@{4Af|iAv-bxG7{|iXz9IKiYcY7GW!D-CK>o zE9Vs*<2R4h5~YYk_1EW>R$sW)q=aI-`*M1@QZ z!_Re1t4tSfosD$ws5DR!GqylEj6wNnx0A;V1#Pkx9s|bty=kW$puIz-FSzpd zPCL8>OfYDW;k2)H4to2k&)GC(XsXy8{QGA?(_uZ>clcqQa5VUnOtu<1|i;usuIvv$DIJias2tCnj zzGWI!_yK)%ljD?!WpCf!W2tjfk_fhr20ySO(I-V;|BJP++GoK7@5QdkI7s=HuyuYjp zTSZu{8};DUomq`KSHS2lEUX{3s|UbIse#+7F}!Rxr~Edhv;te+MZk+PvC3|q~$oD62_5W%q#C6(A$``9>D7Kjizpl z1@E?C_h$Tz=vOAl(id>j-fb}Ile$x8pc^gHPyviQqy$$_)TmPNVOa3t3wuuYE)1@1 zq;U1d*tP9`hxj9Uwcvv^^=mR6hM}H)2t|jaqTVLb*^xAD4Q#j#c_v`m_uIw?oF)~z z#=yU}5)D&t^*zkouFf9XBjX(o$SN+*a4WzG?9Q}nv~)E1*4&ymOX{XHuzB%*%dvgx z;QH*w)3YkqOj1~mO?nfmcl@E&j%0*%F(Ow46qY#drztzgMzLK>Txl$FJLs$9YM|mU zgHmv`_WwvOMTt5+kd0u$L08kaQbXu2mC1mbvNd?%lOe0}n>ul;#`snfK#es4Jh@P%I2|!9;$5uVx+~87g^&@)+=~^ zeip;1cgLQ8+V`j*m3W{?=h}G0ITu!*jSYYZO(-ZGW)h6%6N|ZJ_V59&VXr5V;Bwt3z7#bT0D(Z zb7y{`h?ka!Tl(ou!?Ae&9Ta2tG$_{id9 zF;sOkGX>Q>Wy^kOA~$&GCAX%|Bg$W$%ECeGRg6wT7t#$TphFTo;5JU8>Y}0;5I%Ro z*K0;)i)P8yMPOnY3NWGl7)23A}VvC)pvn76>+ih*05TjV-woW z$LqtDX0!Q>cb?7n7W`JfNtG4AtR`_A!DNU6eC+3Z)lY=Xh=no3Hb)A_mx}2C_oKmu z(!#>w835RRu<6vuaTYKKTR z4ubb+w_|qJ_9qYx@UT4=Yb(RH{!+Se25dL2f;|=v?!4d6#^d8f;6-M%}sLnj~ zN3q(*t!dx%!LcT@2&A6Wql*iP_=rRb!^0^6ByJ5SAV$q?V*eOH{D)ZdFR{trp#Fwr z$1Et;y5-KX*YUfgqG)2n`1eTR&%rYgGyRGWOW~S7)&fe&nisj7C#5Dsy0#sCo_}^_ z8dm);`2J73{{_CIpV4NXwDber9*juAGw2=(PlWqGXqUL^x6~Q_6n+1PVEC`m*bsoe zKPTXoQGmuC2XIf}?zJjXS*q&HhEz}W29|Znh5s}J{QW@3A6Tw=giqL~E1+yCA3s~5 zyFFaHfy3Q%pjN%5oFzoua# z>^Gr*j1>6I{~_-D*O3Cy<(JTOyN2TnKngTTHF4zU0e`{D_90@po?B9vdl?FUGBA;# z8Z}+Nul`$errMhsFzKjJAkfGHqW0**us@Jb@KFEURbP@4aOi@iIV{)qD^Zi_M5CbRg%Y`Kse#8sq}#E1^&w^ zEu#e?d-jsYCY3=h058|_@i&#AN7TDh-7%wg=VeB}Zp%6Qo_Z;xVqpXlVDk1wD8cs0 zS4F{zrw>ImQf=zkp)GO$zgWM1HA2+NIFI_MAMtRi{WO$zPMZz%Y(Gk)FKS`gNa@a! zdiPU|JT7l^-g3%oQPo`LJDnLbuON(O8{D;A#C!!U9JYeKRkeJ*t~il*e;K-KGf;_P2zVD?0PQlzOWuBn_6;Vuq+~15}tU(1o|Yl$whbN>~;= zh!M)$%g%3-lR4jm>^<-)a5n4|W`elYJ+`7-Y;{kNP9oERdHG;hbUb`&pIRuN_o^I7 zqszg%6jq%eCqA)OFYm*3&{(?G1q6<-3EA&`Vxo{_V!IYL6pf7Ov$4oi|N8w04d0ft zm4(A6Spscwfj)KyDj^6PoseNda#C4d!9F6%5oiZ*Tu~xyq6~Az{P{1D@VZyyrMcN* zOKEgzb%Vc1h7IC^ur+6n$il-cNnnTCazJ>oUL{I{=RZ)EjF-wJLW8#A?(?z33K4q^ zi0xvOxf)@p?y?RV&(Cpm(o9AKM! zAtGc=G(M$O7!0WXN3#j)65v#U6PbVWWXV!SYf7ffWZ z6$nv+1zRhKK(D?;?>oxgR5f#X^9Oai*?kpgg##3;EV7$oxp=rJ7X!^XS+fwT(f7rZ zn5UsoozGmwZ+aI$a(Hj*2W--@Y@^CQkN?IoQ~mV0UElHo^W8ne%PbD=JBLoVu}sd= zchMf)A_Pf+5mh<`N8+K932?F$2ScNW;j0fu#wcv<8}jL@AGgQ=8nYb93Jc3q-*0+c z={3)FBwaboS2uO5%x=8+SNGdW)zDM*?U==mJA2!YOaf%2AMRZ~WvA+(47QiM2gmXc zSsf(N%b3*!Jv~WtU|BY-SIMmdu=I&xYIF3iXAn&8P1(@40)qLWHSQd$fJ2-G!uw#2 z=+-XY?T!5aio1`Xjy>FG`r#8k!~-MI!?q`O($cL#ABSnd3qNK-*%~ewq~0wlT`?)E zC)f*}n(;_aL=f1C<^tH>%FGu#7@MQi=vSxN&SrD{hT|O48FBc2f24!zzBu72gdKY2 zbstUAu1GK<+}x@+@FM&4;hS`3@n<6MsA8Bu`H|jNS5NERfxdJ=A@z=KHr7%lVMkL=IC!tYlSC~-*rE?VF2Gcsbe&>R&lVLx(g*CkN@)UN+8=i&FsF@q4! zzs$ID%?fr>n|AOoDVskYoPYm_{eF{2ieMm^<89^p(Cfob3}tqr0jzS!a|Uy9u(xSK zweQ_m<~#7E1FT{e(P!qJf4vE1)ad3)cye|=<=4+P0&TU%_*^YovoljvmW)&!*7^i} z4cBR;Cxy>NxV2KXfoXQJ>R>ELyX9UaJ1m=JF%MG^t3>DS&zSpk=3F}0Uf-5(S}x}u zcC}V-Gb=ihOi~YR4(C1g1aE)8lr?S}1N5L2Apw_@+c}t&RD(Dgp##^y5U(`L=ep^~ zY2tpj*IH5EB*6Qm1G;;tF1VHchq5-ESg*MUR`GkNzi=oY*teMua^ITbqk15vD8c;c z$)q`FNHtD5D!3p+b}mS%2Ua}68SR|7IId2xkJU|UV(J%+_Pl8lhhlB_0mY`7NXOiA zq)DQRcrOUcOX@s1V^A$bvYROqo3XI|V zFPn()mpE}oNGK23QwECdiy4LIa*LG+!rc4bo_n7gLzNU5d5%^2_0^K}$tST-EVyAY zhjTux&_{9|^pa+|`r+XB1@#{VzCMphHQEJny}*4!a0->i6-=tkdD>`UC%|NWk#s}a zZXoM%RrJ%Fipd05)BNm5i6~1|+;BeMT+u_yvaM&t;NIR6@RtN6J@tl9FR6( zHzWQ-oq6~csqDXXNz3St6jPA+znxq7Ll&Y90wM<36ExRK^?T5p&VjRXVAPLCjmXke zsf1&wV}_Dvs$Ax@B+@8#@}!`mJq9b05fi6vny*NA(SmudGeXRQ9=AFHIkLH}gr2@2 zD{o#f%4LXtc{9ife~$6?(hciuz!YDnPTGwJp4bl*AmxUgci7*tPL|q&@BmO*?5TSy zgo+M*#Qiy&H0bFH(&4s+DPh7Cgi@wVsPnFo>3Zy!o94-g-ki`OagV+3<&y z7}Zu$_?M|Gqu5X*KmL#2Kh12mf3#l0xw711hxM#>;|g$^M|RIUHcD+3={{DitQH_S z>bN%#jUHq5n>)x$zBfO0_C;b{`f_mrRds=#_C;uybG+=ZiO{6D>FX(DX>pD0r(0`< zLQy^o@DF#A_Q`~yVI^0&Yaf*pbx}jIb3dnAYCVe#elb=K-oT~zx#31$t8#(`S=lc= z7SdfcI9MWjy<`$I>RgEb5-6n5Z=X3BjqHiZPGu9@xyHRwI7Ld2cCxi!VIvy&`f#GVhyF(?UN74>h zebLG}7T!0jEvYte{-xEm3jNo`s~9QO@-7T<&ne68;>w81H$3yzu>QE$?B}Hk)pTcP zk@nn1D2T19pKsSl|vO_{E#WFYW8;sg&n{VNG26qxuE zk5!jU4+^V-d}0=matH1fqiEfC0uEIYih-cArE)VDBW$?3Lj3SS&;7M$bM#{B1an-p zGpRYpOEst&?VRGJx-_)pnWynnW!!%1!X?6w+901P1A&DT1$8M1Q-zp2qJ7g>+q0r^ zh1mK-j}$T_=wtu1yG{9dg6M%n`+TRBhO+d>X|jFw?cMxKx!oozsb=_?;qei!LF74J zJ$Dezw1}QWO`h~OVUX;ayn<2`Kl*F7QWr|Q*B;ud^XbK#1?d>c z$j-#Z&jp%n7ASg_*tNVJHG01}NBRCxP+Zh_EM3~V=b*tdf4 z^rgQf?zHiY12`hypO1EsqM51kkq1t}W4JYKFM+jJpkUvdACgpH{**5M{v3UGf$Ys1 zdl8;-7qug&hU9^Dwf5^VtS@oVOCAMVHyq7fgOJYUZHi?$k;1uG&Q_(lJuc2xnP7Eh zvQh&+j5L7S&~5%687OP*%~#bN>S78QFL`iHg_gX+#?$(Kg-gVA~t~L+i)#-5mN}Uw=L_!@L3h)vPVqFP4tUC3BpT zR$lf7Hd)pGea88`*ibCz-)eXMQ>PB>ui6>I{5?;}VL@N~HJpP|mY_P(v2$W4o~2an z44SoMERq|xBps3dQvv%(W=g~PBVpt6l7kC7^v3-{3e4CTN`F6^KnNe6XW8r%hwR>; z;C|^e!})kCS6;jt&?NCnGDkHtUXXdTchs|T_tWezcQT#L<5Z@hFD4nN=n%6FB*R3S zwP-no0gc{N>VT0mmcD~JiTTFSfQRamVI01U7MySQiUMOs(mCJMr4yXZ3DZT!-#7Ed z&LN$W>+&Y7EZC8#=({oxu(o&YKS1w~QcC8k7J~D?mJi_^y9=OVd$2z37NLH}lMVyZ z$OSJ;8ld<{F9cKpK-3}$YX+MP_7W#bFo!KfsnXTnhbOGL|{W2D@N?G;1)szhHHC`_bM*gs28I6{&}DAiE7tao;Ro$z8sT&XiE-N4Ze;s}Sln z-wpCPp0u1zrTT~c-l|K;Dl`8<4^cL0F2dQbL!MoNmh(8Dg0<&qi{{I%S%6}x;((o@ zNn(E0zngz%tV{&tILlb+eUBmu?P3RjVTVR!Lte|pI%AMCAg86ruY9bR%N{}twe}%CU7*-WMfM?F7O9pXC+i?~Rt3AT9O&SAbN8d^c)H&t^VOOI@bHrhj zUKfkrESiKRxOAd*?Tw3g#?|cfbVvsjFzU}J? zD_)^|75(ZFa0CvYX~*0O2ge-YuP$-k#UBOdQ{H^|Fl`I>M3nK`S2eJG54Q|qdM52X zea%Daq=FW{Z{y@Zx1ceQgL9%1Dthf+CTEiE9LNFj>*IYao3ZGyFyT?PCaK;fx2{_R z6$oKp#MLX?(s+v zB(19MsO~M6_Q`dsa4Z;|(z@0{Wlt&l;Cv3g={*&n0Uwt;d2`MO?9iD~*pZ~z@Ls~A z+$h^1IWJ03T@5mQoepA2`}CN=Y~r$s^qcz-J5chlt=w-Sge#Aj8i-)`(*URp*kt7i zOGYiDw_;GFZ}H z&inQGf~Pys937K5t)apFh6%r1W zH9y{9lmAm8*T3)?f2;!owr*SPX)U=Wb-$8~C2ij|JvtmW_M`{uMH(O-6sZQAy|)eT zqE)x(CdVm@0wnG{7xe_KzyoP!dsN-C4ea$oU{f?00Usb)DE1ZHCNYVU)3pI?M~ zQl?gRqg>RMbPuqFHyJDY!a>@7f7Z+yW|?12V`28g)o_yTZ6-vKm}z_}P5#g$fg0^G8_KjURG-V>SLU?u+cz1GxOV z8QicN+5&L3yqbd$pC41%HhGx3-EfmS+C9G{#lYOEEl=%Hcv`lB&C7Li0W31x!20PP z^INEmaQgL%`;>RL&!S6((RSt?glcc7L{*Tz*nFnv<>wK6|k{rpOn zhTxrzPYja-a;wNgg80Cs{q(O5Hx_kjs`duZKRJ^Mx`fO?d9}hUsdQ!5wDQY&3-UOg z0ts5kKGU0I>Amfhq7?YnUN*eRSyYpX&DfzWqWkp&O&YdwFlm-{LU>Rx$R|xiddO-GL z3qjKK8n#ilu=1HOCI!=^M&Q?$1g&3)%bLCW7IDIVzPGJdP{nJ#i5sOY;Ga8a9O74W z$DbwXW|W+c^BLIocwk_XJ#7gK5>-?KuNm^W1dnhWrC`RtlxdEuU9D$WThf>9@cGI?CP!_&QW(283f~@eRY$pZ zl4hED(nH-GSt(uFn(p>lxqDp}#}aZ)4VNmyzks+*%(Mj%80Jb=9oouNYlH}OoR14O zNEjW;Y2y$#&o!u)QTSX3oCT5VSoiB$HO)~UX3S;WMO;)AjT;T@9JlI}0w zqS+%5^M1PFN>(6p1nPN)K;I0%wMj#}QSSTeKf7q*grJy1r1J|<1(Nj)+?P=7X~YhJ&nJC>DIQ*8 z1`x(RC|mXHt}8lGQ0?HS_BoCWae{Pi@tbJ)^g|96D|M{RH1S%77d=GvwD+PaiN|4I z;gnA?Q+mjdPmeNLx?k4SXPMQ0N3=)2gRwH``^no}?2vMU1(7^9O4mbVLzX6MYg#?-c*8Mu_CiHMh<`~93+q1U39VgXe8Uhcn2o|*+!gQP?xWN8bvP*^+ zL*)n>By_OR2A;Yk<>r3LN>G5W!a0ctMj6r-$3@3y5e8DYYx=^AGvsydVB)qw*M^~-6bjCrYANTrT?*)h}D^PjvWGpS5Vrz|Dp+>M~ z9OJ5JPYr)sD5<%c_C84r;TYv73;tA;g57x~v>$ip-nWT|(Nw2JIp)(@)P?KyE-ps2 zzCi3eO76T=Xn~zbV3VB1UDPjcgFIklg_Jgb0k-@-B$Qt-Ksf$*8%5{>yZomoN?WB) zf9|3|S4g3{deq%Eo(?Ayq1YOBi@}daUHJYNf!bUGdT9^T_f5RM0{GlCt>p%EUg(p6 z4WE2LfplTJ|{B>1OWvrIB=-5Dg^6gAfjY&LRHS^wL zvVE*C+xh;Cka}46a2YVu{e5a1jh!=lcE`b228i`a1RwX8{aFX95;4b_tN;BpncOJbe-L|w194w!O=%uQ~);_=*m6Zz-U>gr)tM}L2I9l~z zwMH+LdXYzZSMS@<0tGlVMVrp(3iWft4kU?;htzx>G`4BDV!c&wtKeFL&TJgC`Bv?F z!~%Y}v1ogZEHvzJ00#h#)01o1Yvj<7P5q%h(-L4d(fl~Gb*Hz$A29AZM^HpLIS+!g zX8;J}BttL}r5>3-?(^5?=VA~J&19LeQye7D(abg#A8c2nGNG^zIL%liiYUSTYR&c? zg2R4U-FEiL-u-%rH=J7r=jVIeXz{kWPFLwKpkiZnFyTKR$oJ((-R!tQeWfk%-UAg+ zf+54Ic5GaLPw>}gaz>-a_kX+a*@kgij{>gPNcm>AK)=gxjVPE$_ONsF!l?%cQV{y! z-ChS}o&~o;q+qlA=^YN{Y94Z!`o68#O3n8Fz$e@a)eRK36^uX`Gn94^2=7qQ5B@YZ zHakyP)%N*ghLP`3ko(Y!0f1=YaF6dym2I(7xIl(i6qc=Q(0)1~O-{!XQZQf71VQq@ zj=D!N=_Lsi&@0gbnZg84S0UcxIAiX2>HW`LcFrQtUG{ewIbQ6*A80fKp9pQ_qw n14RA5f9dg-6i?p#5oLSgBCSGhHVpXV&ggYC%KBM=CLO-u9EJqTnU z4E&WGItaeOX1e-gI;s#zc@*pRLuT;#u&bt-2Ly8L^Y7oj zc0|Er2t@Lg)-6>dZ}?(*S0rD1dj19%ey}3R{Ap$`zpAfu3;R) zOIO|C!@)56f!!~iwYIkg!>~eqxxM8_AnydD`5~v62?qkRZlECgr!?6iulG~;-7pY@ zK`y)=B`C_t6|AnU6&IUejRpLH6RO8=ah((E&~YE+wbRmzSX^AZk3&qB@hkg{hq&L4j4jSfJ`bCaJplRM%WHBD1{pc~ zU*rsE8x)Z1u1!cif6fmo2vGYnC~VFn*HyNZ(_%HAeny`W+52sBwc% z|9ofbJhj~K>IfY0HK?nV{BSNh29UfD_21~2AF;76LZb?`P9~wv{i)?PLvhyVj`-6b zBrkuL>0!(dY6+)tLuDz_)l7yfCP^wy18JMrula7y(sY8Jj?uNMCTs9{Q287d9w8p8 z)q2?pa=8ss?w9l@52_w|P0dQqE)rNMYl*k#DrS?owx{GG{DqafnQL(XYF)-%XHl}- z+n$r|zhQYHIcC)}wc?}XW$}E`AjiDT^pvQspeu1S$o5u{Y60s)XC1zjTQftsSO~-vc z;WC|ATGZv;g2n_4G&ZkUS59U!E-3D?wy72Tu0&2%$-SIhlQpDwQ}A}?WQ2|e>b=i$ z4CYm!{viQgpe$#n$(_t3$Qh56pse;2}>LJ!~E7l>vim=i~x;?1DAf@UBets10 ziJ~Quzq{D0QX{Hyv4GPS5-s~uy#PCeO-h7IbWUv?Tc&KgFcE^;Vxj<<ZZQm{MU+kEt%dO+mm)v=vlgM|3ABF>eo7q2i_$OcRXOx%-0I(%9ayR?YhrLgA#qWIDzI(i7^Rsp6>vH62jiQoA z1q&A+R}HYT%n4zbxVsW}#?u6nzkP|BK}GE=m}7s5lI&b2sG80LgnQ=*;Ki+(j%GSH|DYuZZUAI8F~p$)-O09KxOGBsFKp z_*u7f7O7+c1Kk$K>TFv%cTupYSnEetWF1SHuWa84<&~wsY+_%Z5;2c?)?%CHNjyrc z0|re~G`r(yHmJsPR-;A&pSLrwB|hcfEdOppix#Rr$XSRiFf9d_FOGM0MXqoBmcz?V z^rJ|g@ODhGG6|0;YjETmv2m{F=;CgG-uDs+pRY|mKFE^S9s2y8i!rfVX!q-I6jxph zxi8T{s7Aai@}$A?vWa}>k7t!v16hzPV#e11hQn^fU0R;oEBJ}q6KS$eaz$kybXA~obd z@#hSP3V6ykwv2C+Mt&$=cJ21Em=GV=+gWmQYd!PsSxXoTKRdVG!LN4R}9zuts^;n&wg zP}(#b$JBJQzLm6nQ9yef84=|E(03Q9B17?o3k*@Z7JW>h$sQbK&Iw+NyMx_fb3}UF zoSBb6PG{(SCuB!O3}9TIkdn`DzyrC{po=UQRc&5Xa_Lz|eM$$H31nXHAGw8e-rW@30dXl)lQPKM0K7OvDd2P|y%-Df|$Z)lK#9=b&2Wtsbd%@ZhGZhF7_ zH7_)lPDss`^_tg^b&E2G%wQDdHnqs|lqIu|%06s}WJ6uoh>7cs39uj)0kqaiL>@@+?0*Wr&Po;ZZqY!?g?C^XwlOotfA5VTiJJ{l3Q~f z>(X_PRBvR|FCC>8mZoA}J#*QbaNG;>SDqIZe!gie@qBZ1&?|he#%vqgP;++|NjKk{ ziW(jCA=c1)EarbOx)@%KWRD@ZVCO*(9lSO*shP$YjmYLfNSMM9r>g{Z;N!J%*JpT9 zX>VXPkTAdFX3zK1p-q6NzS+%efTxUiRiU0^#vH;T@#MPh}I)1b^I^Y(Rt| z(#e~3#=6Ic_sQMuR_+@sD^H&E8nJg9;9U34R+qb`qMNj^UYray7t*y^VB7dBC9!@X zL+J22@mc0((+%__DRbzP!axmjVBuK`t^Vhxq&(8c%EEyZ>2dpqPg{Ke)CfnLuW7Ot zU8uanjwSZ$ag;^2Wv@>7u+zQ15xvTRKYryH=vR_2=4&S02f8HmJPF|}luxtmu$6*B8yB;xNmdgruMwtj6t&v`+2iRz2Mn3A0Ac4r0g`4Ty*~#8+1SsrCBCn#IT7 z&dKhDKrI^Er!)T4Gv7`qB9K6htx@5x&P2CQ&2N?yeyGE$bpGG)K=U`V$+(_{ot(#4_?#8X-7KH?|ip$A}n%MF_D zNp@8mO~gD;Nvr1ZPgw5a7U>~O+&HO8&@g$Is!)F8nU$C0r8GeD?JA+q_Dl+zIBU6g z(|)H+hc2)~V?3Q3#nRX0op23yMfQFtQ^ z#yLyR-`3~gdPH_zE>WVGVj{y81v8njC*MJ~DqXO?ZeMTJf2@rhwA5sTUmYo*r=a<` zIn?TGxxOHD6j!kgW^b@>6^P?O&b^b%Ir)yz0Xt$orN~!jGRsB_OLoC#*3|=?Z?V(*n}2*iK{nq=Iq}sKFesR#XQxv z9g5`XGUDkloh?UdPGKtxkw1RN{>HzD$A=~NjP)MS+MLaASawsCoK$hxO`y*?7o;h+EzW~F_$#8Cw!Gsx{fjNacYEC% z*{@V%q}R-ygziwP8RW)qm@n$$Dlyp>HXdN8HZp5{Hagp3jGBTpyy}uLH^$j=%e#NC zUCkaQjw1^|eeS;0pk$^E<+bESzqReW2sEAljY7gpK7*fbS9Hat1D~EFr}REuv*qj@ z@J%`tWEya};+SE%CWt?@QB&{gUx_{HuQ-x~rN{xitQwKLL|@Ctd~M}V!S>szUmq-6 zI1Je3_zEkIG{1p=Qb7cPD1!$3gEI0!gd+h9I9dNO4^)H`NdvyqfSG0_uYB2B?H7e- z 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 p^^B8GGQ}AFE^s!INJX1_fiej + + + diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..5a6a482 --- /dev/null +++ b/setup.py @@ -0,0 +1,94 @@ +# coding=utf-8 + +######################################################################################################################## +### Do not forget to adjust the following variables to your own plugin. + +# The plugin's identifier, has to be unique +plugin_identifier = "estop" + +# The plugin's python package, should be "octoprint_", has to be unique +plugin_package = "octoprint_estop" + +# The plugin's human readable name. Can be overwritten within OctoPrint's internal data via __plugin_name__ in the +# plugin module +plugin_name = "OctoPrint-Estop" + +# The plugin's version. Can be overwritten within OctoPrint's internal data via __plugin_version__ in the plugin module +plugin_version = "0.1.0" + +# The plugin's description. Can be overwritten within OctoPrint's internal data via __plugin_description__ in the plugin +# module +plugin_description = """Emergency Stop button""" + +# The plugin's author. Can be overwritten within OctoPrint's internal data via __plugin_author__ in the plugin module +plugin_author = "ntoff" + +# The plugin's author's mail address. +plugin_author_email = "" + +# The plugin's homepage URL. Can be overwritten within OctoPrint's internal data via __plugin_url__ in the plugin module +plugin_url = "https://github.com/ntoff/OctoPrint-Estop" + +# The plugin's license. Can be overwritten within OctoPrint's internal data via __plugin_license__ in the plugin module +plugin_license = "AGPLv3" + +# Any additional requirements besides OctoPrint should be listed here +plugin_requires = [] + +### -------------------------------------------------------------------------------------------------------------------- +### More advanced options that you usually shouldn't have to touch follow after this point +### -------------------------------------------------------------------------------------------------------------------- + +# Additional package data to install for this plugin. The subfolders "templates", "static" and "translations" will +# already be installed automatically if they exist. +plugin_additional_data = [] + +# Any additional python packages you need to install with your plugin that are not contained in .* +plugin_additional_packages = [] + +# Any python packages within .* you do NOT want to install with your plugin +plugin_ignored_packages = [] + +# Additional parameters for the call to setuptools.setup. If your plugin wants to register additional entry points, +# define dependency links or other things like that, this is the place to go. Will be merged recursively with the +# default setup parameters as provided by octoprint_setuptools.create_plugin_setup_parameters using +# octoprint.util.dict_merge. +# +# Example: +# plugin_requires = ["someDependency==dev"] +# additional_setup_parameters = {"dependency_links": ["https://github.com/someUser/someRepo/archive/master.zip#egg=someDependency-dev"]} +additional_setup_parameters = {} + +######################################################################################################################## + +from setuptools import setup + +try: + import octoprint_setuptools +except: + print("Could not import OctoPrint's setuptools, are you sure you are running that under " + "the same python installation that OctoPrint is installed under?") + import sys + sys.exit(-1) + +setup_parameters = octoprint_setuptools.create_plugin_setup_parameters( + identifier=plugin_identifier, + package=plugin_package, + name=plugin_name, + version=plugin_version, + description=plugin_description, + author=plugin_author, + mail=plugin_author_email, + url=plugin_url, + license=plugin_license, + requires=plugin_requires, + additional_packages=plugin_additional_packages, + ignored_packages=plugin_ignored_packages, + additional_data=plugin_additional_data +) + +if len(additional_setup_parameters): + from octoprint.util import dict_merge + setup_parameters = dict_merge(setup_parameters, additional_setup_parameters) + +setup(**setup_parameters) diff --git a/translations/README.txt b/translations/README.txt new file mode 100644 index 0000000..74fd329 --- /dev/null +++ b/translations/README.txt @@ -0,0 +1,28 @@ +Your plugin's translations will reside here. The provided setup.py supports a +couple of additional commands to make managing your translations easier: + +babel_extract + Extracts any translateable messages (marked with Jinja's `_("...")` or + JavaScript's `gettext("...")`) and creates the initial `messages.pot` file. +babel_refresh + Reruns extraction and updates the `messages.pot` file. +babel_new --locale= + Creates a new translation folder for locale ``. +babel_compile + Compiles the translations into `mo` files, ready to be used within + OctoPrint. +babel_pack --locale= [ --author= ] + Packs the translation for locale `` up as an installable + language pack that can be manually installed by your plugin's users. This is + interesting for languages you can not guarantee to keep up to date yourself + with each new release of your plugin and have to depend on contributors for. + +If you want to bundle translations with your plugin, create a new folder +`octoprint_skeleton/translations`. When that folder exists, +an additional command becomes available: + +babel_bundle --locale= + Moves the translation for locale `` to octoprint_skeleton/translations, + effectively bundling it with your plugin. This is interesting for languages + you can guarantee to keep up to date yourself with each new release of your + plugin.