From 8b208a14e0b9a023933ed4b09f93bd1b98c1948e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Clermont=C3=A9?= Date: Tue, 3 May 2016 17:36:45 +0200 Subject: [PATCH] added SibaCLI --- lib/Siba.jar | Bin 1330468 -> 1331426 bytes lib/Siba.sh | 2 +- src/org/dclermonte/siba/Siba.java | 6 +- src/org/dclermonte/siba/cli/SibaCLI.java | 106 +++++++++++++++--- src/org/dclermonte/siba/gui/AboutDialog.java | 5 + .../dclermonte/siba/gui/messages.properties | 3 +- .../siba/gui/messages_fr_FR.properties | 3 +- .../dclermonte/siba/model/SibaManager.java | 2 - 8 files changed, 104 insertions(+), 23 deletions(-) diff --git a/lib/Siba.jar b/lib/Siba.jar index 49fe9abf8cd546e00097dd51d0d8e23742f904d7..145ffe341e1d85b252f1e069bb744658cf5295c1 100644 GIT binary patch delta 9856 zcmY*f1z1~6v&P*C?(S|aTHM_!?(S~EU5W;GcL-LjxH}X=af%j)Qc8jLQoj4&`~Ar? znfJ`ho}FYj&zYT>vK;ljVs&&iMOZih6cQ2=6kS4T3i=P&7nX(qP4UVZp&4Ge1~khn z4}s==wOWIu7O)#KA2=zXDT)Smal5hG_)*3Y2g+{sAlmaIn}ao~3e7|9X+9 z?UE1xHSNsJ*ex8*JUqPAl~vc@VFl$zWOWu}X=o@YGD%BNRc)evgV#c)s-phr>bkqQ zWUarZ=;YGcuKuX|3(^0gS{w5TDi~nC63d9#wC{I&{bT0r>~7{03zQJ#O3gx#pMUR& zTb-Xzzu31yHZ0mwn3oWreYkulcAPqxyGyMFXli?LqC`MJ^zFHxCu%hGt*+=d+cvIn z`k}xg9xuZR8mmt+>LrBuur$){^mX3Xylaf+`8;)S$#>gyD$Jgv^QS=c-*edbIyMUp zr{@&GAbUgGv;%T{BGET&T=?8NhB@hQ9?=%HH+iTm7D3gHv-b>Jn`W4Egk9Q*PCu{q zfyTvSP5OB5bc(g{6i<+d@`U@eaW%q9A47^Mz3Zzmv-4sS>GB5WyAw~ysOI#e@4<0x z^1KyyF$J8YL3k5(ea&M(KH=e@#JEf0h;Ns!7;kyTH@WVj1KzD}O+Cb3!VO)TWaGFx zS!@Q&2%d1UtY@Q)pq3ftk8uo^>$otxnxtk^iK=z*H#YJu;p~~r)l1b{Hm-NLzjrta z{)EY1El#YktdUPZkyr}ISE;71(|*4&&c!gcNW4OSMqmEoHQAtR(c25Jrih3XJ!_No z5gH1rD{Y8G5;i)vH0_F$E{&ZO8mt5 z22`-cIZm>Bu;(D~QB3j8`%SiPn-lvp>O)Lp_W|IE8Rneqqj+Bt;By*Bm|ikI9togz zdC-{heWuiQErEPosTn#yGvvnpiU*x|AucBF3XQFNbh1HxzKO_bIohbWE>qc=q=*DG zi`LsDE3GsTx5g#NT#><-2i1-h6wP`XV$55oH_BeXl`jFRe(&9|nx;9;$KENSaZcQB z*3CdXmmHSp5pVqqsDUMPT@h!*llI|~wFd64OEc>P?wpM7m{4}!I zwhyGnjf~Q3uFe?j{q8U?Yy_N6NUq_QcL0jFqS16y@?qVwsbtQ63TCmnsAs~nF6K41X*T+`HZ!~Ifso2TGoNOyoJk}>RfLJYxCsWY#UmWb=j1gZV{OiwhHyK zW?~X|9qcUGrN|<{8+Tmeu-X#wa4)3k;J;ASa(9l&+4Bn!VZ{rF_D|X;oP3FJHV0!5> zqmR^Dv!<~Oj@(Q*xh3t@i`~GnSi9&mbl4U^>u_;D#}Cfi*SFRTog&H0^0UG9xmw=B zZ5;s0A6*&K9D;K5xo%4p2PyG}6R1wu25rV5; z1>Puj8B$p&naFsXAc9p!CG=Yz_#1-22$+2uTtXEjC?O}teRrWIp0dJb@1p$fqXojWLOkAI=szzOz!5$EO8MUFHF^I9be7pJ z{dDemp3Q&d5vLxlfp|IS|J@w64WgjJpB78F_C?{2&NWX9trU~t!82|;pWa4LVIO#d zQ`nH&acX&vz`7xU-SKc}R-e2Uv>2n;(|&CAd)up##mx0x*HJT>r!zi5f-@04{*YNduV= zsgOn6U2U7mdotZ)y(@9G2n`m%X#0E%X3*61sNJL^b(-U|k%U+g=5Huqx^Ei$arih! z#75pm!0bn#o7>epOemKt;eNnSmvfDy+DZwLy_K}J7+st>2et7#u9>6-y0qI;obO^wF0G!c_ZcT^Tdm ziE);lNa1ljqMbX5V3BcdBx3D&$KdZFkXuB8r0^(#Qe+@t_uBrw3D!@5+aap*i5jNcqOWN6jOx zgVJ}DE5-zP=crjf;)jRwnzR+O$T;i*e@S^&$tp96%FAXv(Y5VPR+W-zuY8fy4#NK- zr7646P$Krx$ipIHfLr;a^eMhxYNy$fMNY|Qak*o%xUI!CDznSa@FiP#)_sq80T{Q| z0uBBIV1P70=({MnZy?64MP}f1>i1dfHumfJbCBNC5TB%Ih=_YrG9hAt%kK*7>7x>> zI^VI{K4)~JFYCNLgr~;Yeu&?n5&o_|8rethzL&s*2=<@V|0kyXyWR%2Oli-$xWIKy zTwTIH^&zoSVYG1q{;?hWhW2pk4$aK8MLX2#io7c|x%*f;piNIObX|R~-ud&7l@kjS zLBXJFy6JQk8-r~@FTthCcA(Pw_8K}M0x_HO=75Qif%w6yr+kox&%RD{MS zXpqmnr(0jZ$*n;+4eugiw^Z7TVeAS$wg2+l?r17SN_sSAC<_wz4Y*Ev)as@yxT zr?R>M9~TJYuL|wuB6XRq8elQ{d08`MPuXyLulf-EY`d>Rh~=~&GLxBL#5(REs+KWT z6REB=A`Uk?;)zF~>pVjn>LwMbxut_RFXug(1q~I_oK8W3ZzZcRIyc?%FD@`@n<_uf$SigPr_Vr7g@yhs8JhBOUgoVL0C4 zo&8Cj`aCDBkZZHxTbRYSN_)QqC$1z${$W=EE-dz5mx6(;ofS~N5OE;V_t#|-kwAs2%e{&c~hV+7NhF18Q~>UCztaq zfDJn>NSD3F{@ZS^zS-N662|W4{njbN>?kr4zR1%!NYhYU3^GS1_pNX&T`k|uRYA=+ zYZb^_?D%|90U*(7ehy9pt`OU;qh9lZ`wF)Qmr1!)MnibMY+2!@Lnn;~$8)-+>!|+{ zy`KhHG+BJB{hLETGA!$vp~#Jy{rCbY@kFt`Ai#0H;YM_%TOh91@~za@38P?_ zoi8m&bl?z#-rj~Vxd12lnQf}N4&A0(XzftO9Axcqn@->;;wh~j0kLaLi?afz1xb>| z5n(|&?_sXXZda~D7X7_xW8jQhd=O-A(?j^^s|e9xgF*03Flfei03t2s?wSBr-JlksJ#D-K|v7sET2 zU$*RC!m(`zmD6c!N}he~)o#!(T30%<-#1a55rO#RKdV0|86PfT-o3<&T{9Xf6fLH##JOwTyp#BBzP@qosBDpaY#8);Y0$UzoVHI&P;P zM#3M`M;?|N6*F1L6TuFBI9Ft)R+Pz{xVdDR@-BIUBmv@xot^WzKQ0hD`VmVVze{jf z@&Q`~m7M3h*{|RHKqKFdQ6=sdJQY%HH zu?lNLZ^8}92och9)5qBk^3{$F?RF$N6fQ&6lk(wC_|*lMFYo#`gr{+++@B_ggu5}H zu8n?FvyvSPFq!644r`g0MF@xBU=g1es*1RlZ80!nW0V+&i0szXrQ`ilwD{ezcctex zYTFuq!nB=#;<=ujkv-{0Q_o$FGRTDzoZG&Vs@7(!JuhF2zZ07|q;J4*zUBZDwqQeBIEj;3=q^O108ccfAJQ2?bSZ=QZHDo+I}?n_5Lg|dPRs#}A9 zm2f(JWAi%g~-Cl6bnwEq?Mpp z1`i->85gs8=h&K+Yi{Dl_(SQVS-p*f`#I8$0S6o@qW}RUJ?trDy`rm}P_2A8l7po& zy$l!_P%&b-A@7e*?Y#5LBi-Q(T*TM`qYK}7wwb~i95ER(Q@qm212_O5S2~k-j?K@5 zEKJb*q473X&N=k-D-k;lj^E>q`ev7N$H$%(t@|G8yt9Xwhz}9T6b`FF9R>JPpUJQq zR_X_0kQ6dp4U(>H;kx58o;@yc&RCsUtINbrFhuQHWR?iy|1ev$wbsyMu z1>v@DMbGjJ>fyAtm;xWhkC=rpR58FEVA2qip-`%EEmk5uHd3t}$=jZ$xF@c#mLcaQGKX+vH+`FbcX&-a-?6&3< zVh5_i+UCuR?{n^RxxVdUSl(|dWa#Y$WHkcQEAniaeGyF}pYynRH3?A4^WQh=1+P;Z z0J_dDi)>FIakjgaS_End6!xOw;m{i{v_|s~^=%wAAaq?X<63)?)c7PtP;W_1q1xbZ z3oVh-A~!sfyAfo0QerN3-_TB08NBeBD8WQ0zpZjJ$a%Dv{Zq2Nqtwy<-bG6x{?qFC zEed~`%-4&2mD3Io@lpklwya`NU)uy%a=dIj;+xmv@sIjWsshT1b8QF2GTg}yb-IhD z;mDK*U}wRSuN5he#!BKfTip&S^U`(0?qYe#=TvDN7yRntOlJ}ybt z^&w7}G#f{rn-G?>{tuMpLBmc8YtNL-bdL4KoPr%GW26*b!m2ynA5Ktwt`T}=*~mB& zG632_HHGPNcbue{k&cm^P>Jx?P30K+)x){bcN(Jjc`izC58!j27pja+ptfW8@vW=c z^!J<%xT$BBWPE|3ybi2oDl^g z`)Ym0`|ZNb<6?c&GFU`oS}HA%WClgm4_8g=I6zy39Dy~`H{C-^1Aco81J|vFVqdS= ztfA1%*v{vyUCkYfuwYN%@V<7l&D+JPzTF$#zRdr88Nf4PSsI8!;j$%kzX2}%voQt! z6Lba_0&gA{MjCo+9;;%)iM4{8qPGm351LTxK8zm@^M|YsuOhJ3czr{L=MODmX>-cq zsFM~7I{nhP3>y_u zg1Z7~!$SfNl0wJ@B${nC#ADxOXw{6gy#rmK4pT4ZrGL7PC{X&Yc)raJl|I9H?R-W0M_d=ouFt2te51XlFMXQH^hp@4U{5<_JyHZeKRyI2<8^$K< zOop-Kak{l`9<4Xqgn5!HetH4o9a>G4VewFtpT*{?gZW2`pH~YZoF~_&A$yIFhnoi{ zKYQOq;Lx-Irm+9x5VfFrY>f3!ZV8?2!l(i@F3eka!{(&BLmw?ux3vglph$U@{mEAt zJXCe*Ben)JyUHy=l@L7ESvZz>!zD5l#JdQkEEDNArL4gSK6`8<>wO8lsVmXNcDr5Y zAfxF1hqWy|Hr@h$0erKMjzz@KbH31!<6#tNbtWR+YQ020PmTDoJ6p9P_q`8^ZJWz& zIwK>CzLnTu{CwLY-$L9|ASA~lVK#qpoPcNv(dZK3-!k#ZA>9%bzY9AeQ+Lh?r zA&%FDuRhPp$)@>}ZV-YAEYsPC^AvU~jXOsz;st`lyTx zd7{>(j*VBorx~iCmZw5p8{%Md*@aY0cDj5nE;4&My^}V!3{`jbw$vvK<~fKKCou_` z))-DEr$|Lir^0&IkfGNYvdo>G9JW_oD&=}ia{(43WQ8mn12@Y}Fo+RVW818bldh1A zM+9U&`P&|u$f&FixM6m@K+6RhXFz2a5{A(nRTZWgsE6UZ6outJHu5(;eZ$wOKOhUa zrst|g?82og9a|-I_=e%hhUqiILV8nyb**sN5O;=Et5mjve+D>-n;kiLPq#za574v{UonaYVJXt=sAo>iqT9=68gCv1B{50 zn4%8wweeU)fnH)p#N(PlIx&O)QxvAoSF}@D`T^Jxc}Jge&z9ZSapi*NGNrZFq1c7{ z=U^G_R)dG3daNx%#%9BDlTETb$%n7@1aXwE^1G%uypMJR_}c%0x!Exl(GFRD|ls zTSy&1m`O=_S7hp!Tfw%D#zL~fr%i|3FPgy4{!7CC5}g~?ld(lnLoJQmL50TfWWcwl zNvMieg{Zji_PvJMKN;;>^?o(=nL&X*RLB0|Z=Jo6RHWd)-*x}w0rlRXcUH7#`!eUi zOZhVT(5t*?j@-l)MAt;2+dds^JMJd7346GB{or{GlNSn4DuC)nCF?4bSrksX`Lqd~ zm>M@`9YHr-8&ez~>KsSYiN=GI!s06pLgN}fD9#u=sFjfT{Rm~*3jq_KOAqC#U?MW`aZtn;V!Ev^Ff2RbaD-~@FmQ}pFuKMR3eI_qv`#S zQhMfwlI+pgYRB!o;w-}Z6Yc(NN(<_wBVjf>1Ndp_G(BmaW)9;YP=ZCF8eY(QiqXQkh@8*dD zbDFN=V*byOTM{cx=NRe!pG!XSc8%2fFAbZbn53s0`$olh<0LPRXNtfNYVOPkxmj`^ zc=>7*=MT~#?zXa>M~e8IEI(!gTMWTU7v|B>wOP}jS-bhN5(M%44Kz5cE%;5jh}FZr zAk&wWE*eyZlZ$rd`i}j4kQkwd-$(`vs!5=QC|y^g-(gd+in=kRhU{_0u}roE#&E+Q zd$=1m(2NT4Q_)!R|6in1(OZwGLA@JUX18o^T}LZW+gSIaU^e@kMbDK zlqQS(L}1fqVheTIdp}M9L~Y(m*L{~v@O6DzJ?7|m4pj}2$g*BbWXC;NYacm0xuTEM<{o~Ry;DYRRMeN#f8Wl!qvXpkC zQOO+CR_g7w2@a>#w-`wV#otTG;tD_(7vEFX0{5s4=LY;pR{j0*h2lg@WX0Te)X6s~ELJhqw%zOl^X{%_d7fMKX#}!q zektojXw$gF!FUXJUHSVDQ+v7o$rICcW1Pf z{~DRrZs5CHVil~;7$+AHcdYHWxD}$D9wWa@<=`xfn-}i6Wu~);ghV;1l_ker;eZKt zlWl#X+!ghS!DSsaVio1mCs&C$ddUMJA`O=WY^J>wX|xIdeN2DpCkby(jBZYZej%6_ zf_)*lj^;%8`}Dt!B+<3h2pzT5h;$8quR50I5ncUWrpvQb6tQW$5A)FV&?dYHfND}K;RWLiUNdQ z!MP|v>J{*c0W@DhoEX6B72JpcJYIqAJAm~oSa=7pe+8oA0H;^bAP%@i|J(ZVf9(;V z1_^)>3^Qq(I59q_g`*vZnj$m|0P3Hr#Y@|S+`p??bpJ_RymHgmL4SKHK>m^dG}xE? z2IxuxKmr3t^Y?C`9!UT@jNm^QRR(|zLX`rD!x%IFRi;t6!KeLUM+CV_0k~i$SpQ2l z@*;zF0~JdHsM9uBkw89D04xxfG=LZ;hx=cK82>1u{wmsd|D`}kqvS#WO-KWnVHPC* z%0VyFzk|t;{tw0kxy!svJE-s~=#~M9!u-&9y@8G@6{t!PfJXUJu#x+BDTn31zIvGc z>&U;=J5abR0Pt%5|5-&SD5n21&wl?Ob1@hzv)73@EU?n@jSxXXaxY$TS^h@`N|bwX z4AJI)uL(fsfAzYKuj4u70b(%sp07FzxBqqYC2uMB?|jpLI~pGFYW z|C|2X3GY|SG>;I1e}3DS%`T_-lNc484i6PBh5$wMUrv~(r1d9~fG%HF;dRgcR(#n~ zhV&p3B>+9;-=WJo#nr5SP*9C&FIBex8XB<-GE)M)wu*t`l>j8L_sU3V1Bv*cPf7s7 X*PDHLk;2$AgYI9<5bDGMFT?)_0lwii delta 8806 zcmY*;1yoes_x8};LzmRh-QC^YNJw`I5(7vJgD}8IcXtU$h_oO`H%NyxA|RpP$osAT z?|tuDd!6U*yZ1SJX76*>z5CfJ)Gf)<#nDkmLIwiR(a{0g%|$6V*GTXIii$w{G_oKt zKaF|_>`!Ajf&ij+Gju|Y1o{Pm>#wT$5g`Hb2_zuTAUpwU)Od_1aExb(^aM1BR{sI) zq{v7}x6wsVl?W!VzO$_jmz|r9udlz3rgonUFsC$Hjq|cJ&dF8)goqY=5py9|L|6H$ z!t0`iQ`3^8mUWPJoA&%zbvuG~Bbl#gVh=i*DISGzNjlMXo>(eJ+T@YtT9eGLg=8y1T=9Yz=!TdkAdR_A_dai*}q=~*(O z{1Rc|OYwX$tB|j`y>=C*DPyk*lA~*y%d#XA$mPe(gg+{0v69ls7e87*p4c!qqCZ+W zmJ}y^h@t4;tilF!P3IhK_V$vDiUpK(H7cE=st0|en6#$3Z?Om+w1`Q~^}0EXk#+R_LZd)rkXTfN879 zLYg0s-?z0hFnaw_VHbyD>OHpJbO9=PgnXY}Q=ZNUE8D>XR-G;BxF1;oy(7!4d+D3w zKZrW&Xz1D_T4ja^000dl0Pr`}m;eAe06?6PrvlZ8!iLf?kU=e|aFG<@Nq46b0!Qnu zXc6fGEz8?7=Ve>aBO|ekH=nvCg9Ji)V1P%0U#gj~GEe;vGX} zwvlKzUO(S_8F!??%!azH;WICFe>}DftC#LM2E6;EiNhOV^R?de$k6x>r=DD;de^|M z`n#A>W}mIIs=VCBB>#P>dq+UC19+`k0y-!2%zw^V>{FLah(sIxTa&AKdsOcd9L5yF z11?d`ptiLNl|K=d-la0{cMRQM4qj9HC#S_1oVFk5ha`((ny3O&OxFI1)&8cT6XoR)_Ur)pEbPji%7W`V*s96L zh9QukTdc+Xkns&e_9u}`3b4-~vf$da!<&;>byThGM2KpHNnze6;Dk%VwU8vX%LY|h z2hOG9N`N_7u(FwbaFvLfAMtYomW%Sl_jZMRxf1+#+l^;>Vj}jOE;#Bo3}lUt`D!Be zQdQ~8`<2yHJbl!`3>LgNzKEGk3)j_`8O25uaYim`zigupw{@Q95Q2?i$#S?fUogMd zT~zRt3J#+r6|&iBCIz#0$=~sFdD4leqor!X-Y02`FzBO4n>}F-YYd9%z;6rnRsi0rY zvA~SH|D04wdY0NiUZAAC@esALgTg0n{I`n3f;Nm7pA_um07QNYL?cq?^O?2spWR%` zEFUZxW!Qp%*_$!(oAh)(JM6!iGXDu2a~pP4xUt z8>WJ(OAdv~0p^!x#%oCc_n4h``RCx8y{b_u;^Cqegfemx$U3SCrrw8grdN6NgLYp@i-wset7jg-aM?^qp|a zf~`@Qf}}`vLy?or!PoNg!&l0~3A=`qFMJZY3hkY;4tA$2j~rRtAIK9B`t`EFe|+i1 zxj@Zyr<=0j_t@1$aSDNPC^3`hE3mW;&9Ycyfn<7)4wBaq0?%6u*_B*3!FLL+^~##8 z>#EA>4@|A6qZP%}hV#oRhM~Y~6@BHYx+3WgLtne7PkfpkiboVCsqHp1c3DMpvML8S z306}}bT((dUMh6cz7zc^+D5f!>}l~+$bmJ1CE&n)_2QOlZCQ>ERS{cjrg(lcMmd}I2Xc(TUd@;&e~ zksJx?$wLKgHs=PL`x4ocg}v9z_FI}3(1Fm=EmXP&Yqj7SS5N-ejE( zyBP4e3Z0wNA*pJ&l%t$}Xsl0AVy5tijxFQl$t-@q5DJ^WqlSYE25UE{)N+x02=XdR zmS!JzSp?>=bXsJxdzqFA6FwyWWv*YBQtlq>v20soHj43b^t^k}kJ;0NKgM;`_pzyU z%b2m0vZ|y-XLzgNHOyL+;C{%*g^=4*_%wD=B!J*~zD4vr@oH4N*Cnh&j=*oJO z&CFMb!pn`%CReF?eF5k%c@mM+DUma_t3;w`mSVtGdpTs}7qXIxFUXWlmXw$&AX{Yo z^o#vpDi6dAJ7vO&?p}R-E$eGFGg7&*E*wTtE{^oc)`U%~m@~1^kWFO;E2Fuc;*?5{ zFbWr3`I0XZ3)2k5`VK1ERceC_Q_(8!RqI?ZG-DGNvY~ZzS`GBD+L4qdeOy8yuX~ke zr_57U;2dHw$O3w?IL}k}mi4P_8q%`LB-{VO9rRwhF_R($Hh z>^q5G#K*2IY8(v(JFk*Hyg8y+m#vOu=_FtQ<42_0kTSXnGijW$9V`J0PRF^JBzy12plEMSSGf8u#S;N(#$m5x!$lPp>KI>_<_TtS@ za7b^Zb>B4F;R>Lj%O-{(q-0~F#FWjPo@>9(%xLZk8jIEEGitBvzg;N`>*m7|m$JcJ zAihYHR~m>W)y_s)AJF%QNCZ_>eaIvYuo~DV9WL9JZ*K1M-y*fo$6=S!9XEB5I;}RS zm(C&gUy_9 z2HA_V2v!Jm8!@HK3ZGz}7*14Ylagw5WEbOHNz-!zofw3$G)$FB>DdCKzqrOcxXMwQ zO^*7$D@T(MzUX*~q830-(A`#wS}SZIf2AB$Wpi&=6)7!h`5<5?{O$Rr<~{x8c6s@(ppjBEQ^IOI-{MSd*{&?b?y%p2$ zmni#9oMU8lbew{(?Dk#T+asskIKa(`7aHF%xg5!Dn_@D1Ov++hyZr*T+5Eq4s~3Ly zTIlA>{CoE!ZK%|Fz}SsZ5riSMc7gTBUVxAhhGH96v01;~^W%PsQ&a+)d-u00>jPS0 z`OiSF6;6PJIbRTR2FbY&)XDmQdb6r_G~{W#F(`@KT%e`*tRb<^58>5;1A_WD{7tvi z3+KRv3$%Q&kLP1FWf(K0c@3E;A0K?1Cp{P{7Yen!#m?u4qV*^T-NfZSAU?kpxiGMn#*nW$PrqhUN-EoYE2*!xYTgPWt#^- z^u`#Qv(r=4*9Peb6umd?QOG(5vNz@7Xp)RqeDQgNZ|Nb_{+HgMEdGZeRRJl-J*SC8 z-$#{{!E-EM-4S$0lw|Tdp5S21E{^Ua&4}~2s$>uwo@?cAk5j_$xECnNuF>o~m5M@B z9vP`jJ>`kz#S6~!vy38q!5b2voIE$b{6Z#S`<)PLT9~#$3}T6S++4)C6K}^B@?*23 zn`s~=q<7VUDwH0FrOMVpuwNe?(<(3N9-QxEIOl5ovPeEs+o!b@~D8K)Mo)X&M3ySD`j)*=arxKY(jdPWD_ zNx!}&6u;lfnR3EwP7Y}+o3WIhcVHt;Y8g#qLw5&0aJd&V6@H(rDu5bs_A+qBHn(Uk zH!pAo^%;N~UoX{u&(!ryc73s@tj#2FHkiiK$WO^<=?7&Cr3GusUtV3Ws*i=R?$s!rJj(R$vZgS zCC2C}<+BV);|IQ*C&FvoIB=-p`TDtT_hIU>VV<9^BLF$5mJ|^;EgQ>CT{f)OU4Kmv zyFzcP50<{5rf1P3K4r^w$|#9JAnf(%yqhJ2u<0#2Dvsmh@Qy${LP=R}lwSYU@8i5d zg%sj(U-fml*aArIpQ8s*s`AZuZX?YRl^)s92Z+*v55* z2mf*Xxp$4*{p{?;P=SZON>&SSneTgx9X?q?sH%efXXu3K%Ja_Tv5)VL7vpoZ8b}Z^ zF1lZ8pRIqs-=|Wkd7>qBa=cyMZd%%4+_4u*L%aWwoHr}^P-z`0%vZ2)2 zEupAV!c+&OrR~FW#n^DeW%p`g_mhF?2ad>RpCPhd@n~2(KTs4WaUyTdw7!xgP*SYpRA1KR% zX#sw=yh~=DsS*Zhc_72NX5X>&M7 zjRk}!m_I0scWRvVHE^ra69a65l+#_YC^*ru~7Rz(x^t=AlG$rue)~g9eE>6y8Wj?d_tRCpjNl-zfyd*J^_i{+6#Oq5wt~ zynKhzpb}A3&4v-|NQi(}P;VO$)GG=VS{FqGMhi5bBmP}4n8)}rkdZ}!vCv@%Vuyvu zD~rnjLE>H1O2{Q6Dv(hBnh_VnE*bsKBdf)a2MYzWREE{T@9p#mS6N|c@YJ;Afk$Dd z-&Dr?_CG<|O}puPNc+&Mb420 z#VsN~?6YIBgSiy7dR8rF56;vJ`rL*I1Ft#ZV;wKgB1Bp?;_nqbL1v-N6`nMs%vt&l zT*~7e0Fpv8`SiY~Xn}(Y+1g0(NDEaYSk5!LSt6tl&1+Jh?}sR(k&U$%O(?2dOpR@o;Si;^If9mEg#o90>cM( z=^8J+sZ|9~h*sn^hf|1igq-z{yb4h_CceX*7-N=}I6b??xS??`0cg=)&I7I^n0&Y) zC25GLbKH%qYbq#fxn`5>gH`HUqkjTHueXS7{{`l&4hL#x+w?yAp;y@{f-@QTrW8M$ zvC~d)#Egnl2zIxUkUBK@JTq6Y+3UO%oP#>vAPCUa6b303ib_y3Z@w5}cP@*4AzfX; z5U$^#Wk6k6g#)YPi$yMZV^B>0 z{-x^-(A#yLV#3_OhJqC*2HcmRx7oIfhBjV9p4~xjCRbw%6{=#&r`YAnD+2-&e-jT80u<&HpQ6`c`xVUq# z^3xjui!n%ByeNOxS1_n1#p`7mGi{Qm2Cn@rg?9RQ>Jj;+4+81C7#z-pPicF>u#H4rwu5%V-Zf2g+v$-r0*?0FP{WVTn~yF4@_U!geVlI zVv0|Tj;SbTZb3;=>wcBCBs4vWNhK(oWbyiiGpxpp-e7xuD?@%kw!6 zU3gcu@tJ>-gn(q1At*{mQIO$t3^mA*DXPKd-n3?4ki{^wVyZNZc4Ub%>MjbRz0Ggo z*(2u3=-VvQ1&+FpS{!wf=+Dp;XGZYXZ4}R4^__n?QH!2oF{m{mkTfpAL!YbL*qoG_ zQ@6eYEYAOuYM!Sc=5T5Q#wIZ@7uL5uw9htCQdd}~TCAeU$$YE?<(rd5;=dQF{M??x zAcVYAUc%jCt$AsZ#`d+QZ&V(X*GfWKPV&=40xf{NAACKf*H0=KV#;>MEEblK&x`+A zVPYsT$Iq#MqJz2i`N1ty*dPGpbHcQ6B4qbRs@m&LJtA)0nO&T)mtX7Xx6$yKnlh4T zKgKqm*l(5@%dvC_R_A#RM0%SWTV&gmOJ%d=u3w?*()~K*o-%LY{AF~E{0Yo16oR&R za#_7i3%+HZAsxp~)_9J(6Kd>^J93#eAL;KlR0MnS70-gLP~0(f@Y8dohR*4(n$5HM!pYwe%(VV+gD<_8`kx% zsz9dg&@n2ZCe&Pv3dJfjeM5fjZw#Vi8i!R%b6_!%HqLBvq2~FK8vTt(v=*a$GdYb4 zBFe}C|5gJV|6dcD$i+1DiK^!uojW3XZ3&N2d#(m5#>%QvRk5sdP4}h3uITGVLyKzh zEjCL(W|U|gf4J?iCcNk<8)x5vD0kjgo=J3Vf{g2E?k7yTF48P_vlNjbo2-L_DFf9} zt6;`oJJEO)(lz8gg6GD+AKoBsPttzcdgS})71ga{;)>tGN^g5O`<@3JePk*b!{F#? z>h3v}i-NApziTIIT_${X()%3|!dcK0F6aocb06pqd=#N4&>o?_ z1bPJwh(}z9)rmS%QQIAub=8Jr$ytRFH-H(6G&kDAOealtuHgsg!dC7?DzC+~V1#^Cvd0M zIJ443Y0di3$()}?9m*tYHh#g`qZ=ikS5Uuq`;K8eqfnGDAu*N8y!7J8# z<^=kDBTrnNSmy5DVgJi#@Bry$Jj2z9bVTrR+BZs!b~83*UCK)|cKHZIDKD`6*}58W z&8lO4>G?PGpHjq?z)d@{q=PqSw8O7c6blvgnDCU@EIAE}7YVDdjdJ-Q$%<9-b2T7%j0MW@uo+5x((S(h^r(5Z(h*t;2a8k2-jXi%@6Kp zk*LENlO9RyIJWIfw#2eZcsu}GFXbvP|I&EDTxsd{rPd_bouk@#i@s;rLm9qU-%)E`8@@d+k8!SXbCaVJ&i@YQ^Ne-r{q@H*+W8+Zv!y2iLST znqpY=4`k_^P@3l(!Ra4jgu-;Y3_N!yxSI!#W?j#TrzMN5e zSsr&T8OZ&ZDjvS@clj|@j}(}o_i%M88-nyLD)A)!mSn+jy0iM+-G}{f8@=cCnOu1b zM^EgTU5eQ-Swa`vt1cR8Z~?^S;q7k;l+aY!YiEftr*^IW8H%tMU}1vOED(n8@1Q{3 zPVZFHseMPN%g6P8|2H5Ernx_kxsPjgn{*zx$q%%KGguY1fe3}FsI3WOvzu=33o{qK z(}UVO77+GYHC{gpO{4y~{X6c)`pxj%7LDS|5lX-M6A!kH{We)o7qEqF7uDbg42hX< z0x{2(1$@GqBL&C9W=h_KePhwQWp)7~FEYl2=Rhz&9Y7%Cw4)czV0Sv3q0hw_Kf%cu6^D(N1o@_iwmQz#S~IZE*-ZBN|tqwMDGau!}JHh}4MUuR!~w76K$arHoD%EXwd!8jat)xh0x8 zU=$rALpWpl$u)cVsw*el5BpS+0jxdD!o2&q7=?!Jg2y+7M=&I%Kz7fg7x<3fPg;Gu zSmP97Rd$_4)(tEz1;LOQeY1%iHgUAme2e^(x@2hhf-28?3_Q=3>Uu){C{ew}nz}#d z6FhWx5xbRGYfp!6-R?A_FJ#>wq+{xV6cZaD>4p?D{9entPyODbwNRd+#e*GDrv{xY z%xu2Os3N^2H0#{IMKc)J<0qz}GPRx`X`is_es=)tc&{{|Poo%z$#?mhF5omVFQ0L* zv&<;c{uNHOHZ?;zk^k`@I9-W`zAC99iHQRMn3Mmz4*=(#Uwfv+dZr-21raVta6xYK zOhLIx`%5^-I)hN#oIz+zb${>LQfAS-f}ZrqTIjLJS{QJ_gbNm2u-lNea6DF@p8B)l z#`?42!37^K1aKjQ3sIXt8&IC~uLZ1A7AXG&5afW|Pk>(zDEtK6<$&T(pjr;7@B}X9 zfcj5BMILDX1RCUlzE1$80Cac)$qGQ1C-9&EbbkVFiohQ@aEe^z|Cn2tn-b6xaflK| zpbVto&{0P~1Ooo)hrn4|m4CBXOn`r14^JNaNN_?6R;L7{MC7A|P6<%J!jyq*h)%T7 zMnziKXJw!)Vj>7;qXMLdaj5`#5pP)j-smIb!>m<+4A6QWG}t#4xWfq7KSrFYaHDM= z_)N^OSXKCgKT`0Sm|%;4_5HGN%mEWtgX_s|MsjWYqq3Uk(iM+I-9{!IW}A%ln! z4!h6-vOEL4DpL7(mH&5D*(WP1c*lU?KbeOYql)@11y*w!3gERgDgeGc{&kfkLBmog zVYS*o?5CRQ(uQY0j~=$94Fu8sb)7XTtmFs+0P3M|7VKY+0Km{B8mw>@jRGd7^Z%Vy zb%2yeqH5?+a0&@5R0l}*?C%WE1mcwuNKpaTg{T1H|IAPYg0<=ZnNd$AfpGo*17+>| AB>(^b diff --git a/lib/Siba.sh b/lib/Siba.sh index 62b09ee..5bd0659 100755 --- a/lib/Siba.sh +++ b/lib/Siba.sh @@ -1,3 +1,3 @@ #!/bin/sh - java -jar Siba.jar $1 $2 + java -jar Siba.jar $1 $2 $3 $4 diff --git a/src/org/dclermonte/siba/Siba.java b/src/org/dclermonte/siba/Siba.java index a5624d7..62bb986 100644 --- a/src/org/dclermonte/siba/Siba.java +++ b/src/org/dclermonte/siba/Siba.java @@ -19,13 +19,17 @@ */ package org.dclermonte.siba; +import java.io.IOException; +import java.security.NoSuchAlgorithmException; + +import org.apache.commons.compress.archivers.ArchiveException; import org.dclermonte.siba.cli.SibaCLI; import org.dclermonte.siba.gui.SibaGUI; public class Siba { - public static void main(final String[] args) + public static void main(final String[] args) throws ArchiveException, IOException, NoSuchAlgorithmException { if (args.length == 0) diff --git a/src/org/dclermonte/siba/cli/SibaCLI.java b/src/org/dclermonte/siba/cli/SibaCLI.java index 3ee703f..bd3dbdb 100644 --- a/src/org/dclermonte/siba/cli/SibaCLI.java +++ b/src/org/dclermonte/siba/cli/SibaCLI.java @@ -19,42 +19,114 @@ */ package org.dclermonte.siba.cli; +import java.io.File; +import java.io.IOException; +import java.security.NoSuchAlgorithmException; +import java.util.ResourceBundle; + +import org.apache.commons.compress.archivers.ArchiveException; import org.dclermonte.siba.gui.SibaGUI; +import org.dclermonte.siba.model.SibaManager; public class SibaCLI { + private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$ + + public static void backup(final File directoryToSave, final String targetDirectory) + throws ArchiveException, IOException + { + File result; + result = SibaManager.backup(directoryToSave, targetDirectory); + System.out.println(BUNDLE.getString("BackupPanel.confirmDialogMessage.text") + result.getName()); + return; + } + + public static void check(final File fileToCheck) throws NoSuchAlgorithmException, IOException + + { + boolean result; + result = SibaManager.check(fileToCheck); + String yourFile = BUNDLE.getString("CheckPanel.confirmDialogYourString.text"); + String good = BUNDLE.getString("CheckPanel.confirmDialogGood.text"); + String bad = BUNDLE.getString("CheckPanel.confirmDialogBad.text"); + if (result) + { + System.out.println(yourFile + fileToCheck.getName() + good); + } + else + { + System.out.println(yourFile + fileToCheck.getName() + bad); + } + return; + } + public static void help() { System.out.println("usage : "); System.out.println("Siba : "); System.out.println("Siba [-h |-help| --help]"); - System.out.println("siba -backup -directoryToSave [-target]"); - System.out.println("siba -check [-filename | -file.tgz | -file.md5]"); + System.out.println("siba -backup directoryToSave [-target]"); + System.out.println("siba -check [filename | file.tgz | file.md5]"); } - public static void main(final String[] args) + public static void main(final String[] args) throws ArchiveException, IOException, NoSuchAlgorithmException { - if (args.length == 0) + int numberParameter = args.length; + switch (numberParameter) { - - SibaGUI.main(args); - } - for (String arg : args) - { - - if (arg.equals("-h") || args.equals("-help") || args.equals("--help")) - { + case 0: + SibaGUI.main(args); + break; + case 1: help(); break; - } - if (arg.equals("-backup")) - { + case 2: + if (args[0].equals("-backup")) + { + File directoryToSave = new File(args[1]); + if (directoryToSave.exists()) + { - } + backup(directoryToSave, directoryToSave.getParent()); + System.out.println(BUNDLE.getString("BackupPanel.parentDirectory.text")); + return; + } + } + if (args[0].equals("-check")) + { + File fileToCheck = new File(args[1]); + if (fileToCheck.exists()) + { + check(fileToCheck); + return; + } + } + else + { + help(); + } + break; + case 3: + if (args[0].equals("-backup")) + { + File directoryToSave = new File(args[1]); + if (directoryToSave.exists()) + { + backup(directoryToSave, args[2]); + return; + } + } + else + { + help(); + } + break; + default: + help(); + break; } - } } diff --git a/src/org/dclermonte/siba/gui/AboutDialog.java b/src/org/dclermonte/siba/gui/AboutDialog.java index 8a756bb..67f4384 100644 --- a/src/org/dclermonte/siba/gui/AboutDialog.java +++ b/src/org/dclermonte/siba/gui/AboutDialog.java @@ -34,6 +34,11 @@ import javax.swing.JTextPane; public class AboutDialog extends JDialog { + /** + * + */ + private static final long serialVersionUID = 8868109575782482455L; + /** * Launch the application. */ diff --git a/src/org/dclermonte/siba/gui/messages.properties b/src/org/dclermonte/siba/gui/messages.properties index 38de2da..a7562e5 100644 --- a/src/org/dclermonte/siba/gui/messages.properties +++ b/src/org/dclermonte/siba/gui/messages.properties @@ -27,4 +27,5 @@ CheckPanel.confirmDialogYourString.text = Your File CheckPanel.confirmDialogGood.text = has been check and is good CheckPanel.confirmDialogBad.text = is corrupted BackupPanel.dataMissing.text = Data Missing -BackupPanel.TitleWarning.text = Warning \ No newline at end of file +BackupPanel.TitleWarning.text = Warning +BackupPanel.parentDirectory.text= Your backup File is in the parent directory \ No newline at end of file diff --git a/src/org/dclermonte/siba/gui/messages_fr_FR.properties b/src/org/dclermonte/siba/gui/messages_fr_FR.properties index ed97472..47e3bfa 100644 --- a/src/org/dclermonte/siba/gui/messages_fr_FR.properties +++ b/src/org/dclermonte/siba/gui/messages_fr_FR.properties @@ -27,4 +27,5 @@ CheckPanel.confirmDialogYourString.text = Votre fichier CheckPanel.confirmDialogGood.text = a été vérifié et ne comporte pas d'erreurs CheckPanel.confirmDialogBad.text = comporte des erreurs BackupPanel.dataMissing.text = Données incomplètes -BackupPanel.TitleWarning.text = Attention \ No newline at end of file +BackupPanel.TitleWarning.text = Attention +BackupPanel.parentDirectory.text= Votre fichier de sauvegarde est dans le répertoire parent \ No newline at end of file diff --git a/src/org/dclermonte/siba/model/SibaManager.java b/src/org/dclermonte/siba/model/SibaManager.java index 4fcea76..63fc839 100644 --- a/src/org/dclermonte/siba/model/SibaManager.java +++ b/src/org/dclermonte/siba/model/SibaManager.java @@ -31,7 +31,6 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.ResourceBundle; import org.apache.commons.compress.archivers.ArchiveException; import org.apache.commons.compress.archivers.tar.TarArchiveEntry; @@ -41,7 +40,6 @@ import org.apache.commons.compress.utils.IOUtils; public class SibaManager { - private static final ResourceBundle BUNDLE = ResourceBundle.getBundle("org.dclermonte.siba.gui.messages"); //$NON-NLS-1$ public static File backup(final File fileToSave, final String target) throws ArchiveException, IOException {