From 781909b09c6aea495e5bfcc2d304538549029a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Gaspar?= <46165813+ericgaspar@users.noreply.github.com> Date: Thu, 15 Oct 2020 13:10:03 +0200 Subject: [PATCH] Testing (#7) * Add dependency and set library path - php5-sqlite (needed) - add an empty calibre library - set the library dir to that empty library in config * Update remove script * Update backup/restore scripts * Set the admin user according to installation choice * Use admin home dir for storing the calibre library * Fix calibre library permissions * Fix #4 Co-authored-by: Luc Didry --- empty_library/metadata.db | Bin 0 -> 133120 bytes empty_library/metadata_db_prefs_backup.json | 590 ++++++++++++++++++++ manifest.json | 14 +- scripts/backup | 3 + scripts/install | 29 +- scripts/password.php | 6 + scripts/remove | 8 + scripts/restore | 5 + 8 files changed, 651 insertions(+), 4 deletions(-) create mode 100644 empty_library/metadata.db create mode 100644 empty_library/metadata_db_prefs_backup.json create mode 100644 scripts/password.php diff --git a/empty_library/metadata.db b/empty_library/metadata.db new file mode 100644 index 0000000000000000000000000000000000000000..ab66a707a1e2c279f13398f404770a5c29500c25 GIT binary patch literal 133120 zcmeHwdu$v>nqT)c#i3;Tynb+JWm>Bib+$MwQsRiBC0V9ziWk0qOB6Y*5!EwYRsB_czwc4iUsZK4UZ1hcmbqFi<&i#HK(nkKvfdi0p(ukw{yT<=D{-^P$#(y{d ztMQ+V|6u%{@vn`4Vf<6$9~yt(_`Al>jNdSRV*Cx`uN!~O__6UT#*d6Ij4k5_#(kq~ z6pfD!%lMvg(|F&wZp;{0jZ4Oaao!j+P7%_6)vL5!jzIOA9*qqQ=-c^ndL?J2E9LcK z$)R77sfFa^Qqo+Syfl+EX`(q~+F8>yr{|WESCb3odkfRElM5f3*ODI&AAh${+h^eLW&#f9M&K|y1c&$_9De>~I2`*H9KQWc zI2?Wf4lh0nhi9LLLthjQy#^c(M4o}8WYy?geG~!;fqj7h>g1LE?+Z~YCKUoT2&n$Q z1`?H^5ZE^eAp4I*wzSBW@jJ%<+c#`0Mt27S=>C82!~jri!6}x?B#6*>>;PStvkSL9 z!H3JqE0fDJOXlEUy}$#yczJI6`f_pz1u)|EgBl7r}83PLAE ze2#vh081)Ce;COAbq%5n=QR{oX!O(bdD4i+Vln+M*f?;rQY_wf@S#Tv+TbJ>vH?bX zqBiE_^3weD99%Y=oLdS(qHLFQ7D6Nd$`i|l+lAuY!igp#J3tHz)g{}MWXpEma?0ua zhPgC7n_OI)oPEz^lAT&!SOBI{JST*`jmkpu zPK|~%h^R@bMWwf$l>!kIt8s9!Il<&InKmhGq|568$`WdKtGV==!*!Mi4H+|u5b!D$ zh*Y9@V@SF6w3Esd?^q@C()|1kSDrB0D$H2y`C;$o_jYn9kVHek<~FB(49J@#`Kgw_c7$W8>rcqnmD5 zpUR~RYnAjGbTDXOgS&Z8+EcXy0VwfaPjBqxN&Q1iiVja4>ywIA$XK4!s6@b%iN`|2 zaAmxD<3Kc)Na)*yCTR*A=eUg%Qw~a$Yp);!7N4<7h$F`%2zEeZYx<662#^-HMS_kS zQB#KL1X{@Wk+mMa<5Ru8u^Wk?p=2#=sYGqsp^j>gsB;|=l4-UrCK%d-EkFmJwc3)E zX~IxFpDLEJFc4t6SJRh=4GIMLp`Vfh@OHX7p!$E0vs0%Ef&GMln*ZBR(pJ1G1Y`u% z{lAQdI#USjCj?agzn`S7cvT3<2&n#F#zUPc1ojgGs{h|l(pJ1G1Y`tI|9?RHfd+s7 zIPzlThVe6P9RAh+O#NK=#84?+whL=ydXP;FiD@rXZ$1^h+SePqIbMH;NuFtBq~z46 ztM49+#!jEsx2J?T%8guQ%`T*1MNOJaObH3k_)Gx`*+Z~$gU!J-vBQkczO*x^RJ%#7 z!8yY_>72aIrNQgODI&bUEIxUtH@1AbzElLPm`H@ApF_fpoja#*FN^Z1tmJHG-GcRJ z?z}84c@h)9;U^clNJl3A+7S_!GH*B66E;`ZAnuro0KPjZN3|&MD?a^nZ|v5&5CO@c zaUsdc&#Cc$eOIS)6$0IifExdIvvd`23W53vsQ$k`J}Ors(9H;_{=b{0t9Vlg)JFjI z|Azj&ravFaMSiONqW&+nN%+_JXX5$Z*!7e3V-aQ8MukH@EDFIBzEz!hmIUsu3V|ZJ zbN$52Z zw(3mSc-JXRCuBo3xKpxeLMCeb-?*z&B^3hQhJYIXcbh~NKMH}y5m5bq<5;PZ3W07z zK=uFKCQ-$YLZER3Q2*bfzoO}{=XI~A=OHi1|ZA**&H&aG%b%b>RuwJlrs=rab{ zn!@IunkGK>qdu_e`5(K{)2TKo1a=4kHU8frpj9;rfnA7zivR6Gp{OP)1a=4k)&K7h z(5f1Rz%E1p_5X(cCz}2zkz>Z+)4$Tc+J%i&O=1XK{8n#lJ|48%GE;HN#XLNUHdo2x z_@{Jk0+F86FZRZ!jsy~*;ZPJhC4td_tyn)^4*7^YUb!};TAT8+6uzv@Z#kGI?ueyt ztZnsmo+2sqTa42+vw;_FE;ldD%wOVfS7_#Hy8V~%GK|_#KU^oaI^L0ZxElX6(^B6G zf&GVo8vpM{@|9fK-hg+~HPy~Sv6N5e?C-;SyYO{vn%^I6dY6FZQ+t09Z|j~= zjsF|7b5%+q(2WSF@qaf;Rq><{Xbb_=|M%z%n!XVE+mU~7{M*P=+8@BbF8GXpyEis{ zJZNNYXJOeddUGmz8M1IPw0U;`zu0(d7LUQY>Nj4%0(i=5=PF#|KF>f)3kH?*ZLnv{*`gS_-EQ!ea4O-i&pO+iN=l} z*B@QLK`tSHCj2}hg}j6evyIRfi*(=xo6Uy6*u{7{+B4B@@`+#DSt$%Qx#OBpM(^N( zj}#1QiI5cfLalW}KJiuqo7T~2?C4Q_>o67>e}NMJ@f}HAJQ*=GWb(xYJm%N*YmpE| zSeu;nECgr=A5Kz$Ct>!+l1GDrU!1K}g8w|ZIdv==J9bR3UMJAlE2VVle#*|~_^)9Z z9G=dg@mX^b7STh%Rw@9jq%MtIMYRK6EHFMc*c-cgERb>DWZ<0t9#P}}`o2!(Dg?S2 z0X6>bX6Y*46aw`TK>fdN{5uW))JGwp5aY)3$cSDY$MY_Ei!7B-W$jYgwzA&yQ_>uaH+KkTQktKI5uf`KvfC5Q*WiyZITw$= z_4B>4#gQPky^TyIyeX$Q?N{(rDxH^u_4TV($tq+lNBEhLSQj!{;~KGX+q&QM%oCd5 zY<9Maq6O8(ipo$4cM=sCv6hU(4#xljSN9GJuK1K1`%n69Mq>5akHO>_q5 z8t6SV~JS~s;njz zZ{YXIU^~_!t6ZvxgxJn<$RSNfjZbIRtyH-PFH?2OkTE#SS_+vc4dqpA$Pu`MtcopM zgt9Q(oTJ-zA&aPC_!z}Oyx$xpQwSN8NEhWA21`~Z1vIRCke)ct3OZK0lvz)ety12B zjGMPu2DV~K0$M`a0o9b(Vdp=x7RcK{ae=bm|6;cHfOhpSX4usD9oxE#9}4D}_@@KU zFtD&f5d})Y_WiX2dUu4|Rxm42B!tai1~RM?hZ1d;V#!e3z2gUZw5#CE)>12_;$3)8 zL~7m6!j3eiShnTdy!BE~k2e0?TB%ssK>Mu(Fdsa8(dg0Q&pGKkJjZe#JnWD3XeXbm zAbM0ofzX48FX=s6q91y?oRdnIKz~Z0DbP@)aA^D=H5N7FkBvp+*Ns)*B>1CmNBmTIfEWlpX>>Y7mSm-#|=dKjl{uP zAE4rYyGV0XQxpO_jDU*&?J(e~I)%V4LO}KZyGR(SDGGrdMnLudI}Et0P9d<15J3I^ z0rbGHKhXb){=bY~V@$iJC$$9p^Zz7Adt)Dt19u)%q2%!GIN4GWI)_*1PAB|Ua%fFmTZ4ZH-6Q}CEC=|_frV{9QvHI@mXl!gu z-@b^a=6ohkeUjdgChdF*kQqGR{gG%@_-#IO>Ap+oU_&nqI*8Vpdp89h%vyKsjORh0 z!-o!LR_&Ui)*epNRJN_xJtk0kjzi?JqN1Bv&H00a%u@4n>tKh5L7eW zJ48#M>CH^B0Q+@@R?@js=mI=rX@I=ak+pY=Ts<_EZ1vZFIsN*KFNqa(zo_QKW%L^@`$8&|4As0ND^3K7U-;!$pNaN{1(KwiA!r0%6F~@}pB{!GNyHtMsK+YG53Cz) zgd~lJ*M6a$ZjPW&uG~zP8%W4iBQk?d$&eEd1GI#o{3N9w7o-*y39q5k0i1{{B>e+pg#Lmhm z8+9wBN8(C?x-s^FZpk+tnYMopvzMv)<+&wzN&)qQ*xkz=8gXW%VyX>XYwZr3<8-Q^aovER=FJUalP2F2go((k!WSK>aM_&@^A}sUs`rPSvy?ulHKX z5mx{OPz5N>pAM}A`9kQYbCeZf%^2g(eB(`XG;XHvtfj~`{@|N<(G+lizH6$)SWuve z{U6ozqx!(^*ZiGsVb7zF#-jbnWZ#!lUQ1iGbFjl3wqH{qMVs>G1=*gr++#MvTHC{B z7GxUOE^CyBd4vFsM`KLrt6>!=VQvUj8dtU)WXr)mfk;b&lDH8-v%~hU{kaBz|7WMI z>xtLb^XRj)(f(`K`o6p$Xx{v$1g%fz{Vca!H#^kG-J&~U=Wca)?CdplPd4ew0W<>AB&HtBY#ZBkMFnYcK)1KhxGpgnm(Y%p13{k zss{8tS{WyO|FuBpK*w#qo`L3tx&>OUMW0Y_6vzh2WC%{ol-B0!62!a^e?W>(&@0fm z^+|XFslgp`0|A`vDF;A!KpGW1{-@Xx`+rH(U(&z1tIY37H>T%N=Cx@5)KuS>*8|O; zM3{W7pJas^KPlFt?KgV!O)Q^=!%z&_I~EYKLhPQDoFHFM%IwAFcF5}e`Px%PKUB8M zISU6bhmdB#Z9-iKKv*XB|F)*Tt-tZ4O>Pg?-}7kVT(tkKxB9+(CeTZOfAGI|KpCMP z0u|a3|9~p;9TxD65Z?ghCQ#WY`<(D%h{uUm0%-9UUi9^s}2ITW|VWA-MVP`_I*xm&-1r=)qRe6#)7;)J|D zIvv^}55dXGY>=Cw$Kx#;2>yjzK5sX*|DS65PxZgmrN-1%Z1rrP&%GY)PbB)jsEJ9E+d0wrNlK9IliU_fztPBp$M8v=qTQ1eH=gj= z%wDXzLssu?`x7?$*6;s&w5q06BVQR$8=o6rg&5BEcP>WzM@IU-c*;96MYj{8{-N_A z?L&D~_c~4x)?NC}V|9293t~Z3WjJTIzmH9e-8ws@!$PBlf_{&&#OG*_a~yUiwS-61x%bo zO<5HvY??~5irAtLEdOg#tpS(u7D$(}=EU#5NveJ}sOlBps%OHgMwbOujanL4`+q|G zoyt}SbTIS-6|5 z4aAEDQ!evj@={pUGTY*%l;_HoXzapieN&tP5GE}JmW9-1pK66{55qzZ7^GE#mjkQ# zzsJ$3Q-#2OLO_lG_mi|0uL=Pf0cHO(9_maXu%8f6_P?K`t$0-k$OtI=m+??%3W5EE zfU^JnByGj3LO@19*}sg3I#USjCj`*^e^mQ3P5U$bWBqp{Q;}abzHR&!?Kibs9YEoO z`QF&TnEnZ#OU{)x&{iy;cT=RKSxj0E&D{HxrL(1P%=N~O^y|x*GJ57ZB8|R3l4!9U zL=63=S36h9TzMoH+ z-sNc@_*BR(+CmX)Bk;Ej3KY;Pyz?0&QdB`0JCD{)ck)3+?*nz5ZJ2-sPX?^m7Hp~LZE#Fl>N7lp`xG= z*sBOA``@dQQ|(p=w2y$Y|MoFd6chq`6#-@cdsT9(-3o#B5m5HuK8A{dLSU~VpzMFI zN=~&~A<#Yo%KqEOP*G3_>{SHt`ak_^P5)Z|)5x{RFGv2j@saVh{%!4d_9#c!mhj3z z2d|sLOVwb#82YxPHBu}Gt-(USP5jP8?-St{7kgvJ4(ksvF}kD=$dO-JiJ+T{NRl&u zqS=LLEPhPiB&!dFC*S~O_bek(chggLdutyb-gQCm6#^YVK-qr>KvX0Y0(%qzW&e9raH`n~fes*`?7ssbDiR8TJ&FK+ z|F5>Gp}!~c`QfL_(Seaz-;drZm+ZAQt3-CzX04o6wo>KN8a}51pQVNAt5=f?uQCb^VE;U!E!Dsd@!b$U)pG2uh6xUw)mODhmx{%DdH*CS#R^D~!E z+1ZN?P;di8;;TZNBqBX6x}|2&;3Rs9WovxkaB1t8^N3taDB$>DlYIMa9dD8Z-6MVtzo{AtE}0DR4d%uS*uXCS8doiU9axs++}3{hW1CA_DA~Hk-zgqJiv}ry7|ug z*v(XLNN&b1fN7NLyBW8PNnFeH++uQJsn)gBx|QYkE>D6J!XC(6OfH$|H3$=ByPUJ| z8)%2-k~dD_)A(?uVrM7N;p|YH3Jnra0nycf$g0K-%*xiR#7boYG$q7ix@9EaMcAT^ zZO~&j!J1ST^0fRzEQ_;=UqOtVD~7~;<4u#}BRgA!!sQR517k<}wx=ixtG6?-K|Y@c z&4+0RELV2w={H`bmJO8bhz11V~BV zN-6=SjaLXupp}f4P_mmOQ9b($(SeiwecNLKoXGi8Wkx@JU=&ISz<87x6%um03br?H z64*pPfI%U8RS&jCHLr`|L;Zh5U(oc0$geeJ{i<*P0@e4v8y$#`^=;1!c8nitg!?3) zfvJyGyX6J5^%%7eC82Ov+4u*y2&6Dj!}o}&2S*SQ1NH$T0MbSc-iKnBLQCv_NYjTR zKMGK2l?(_}S3ZgkoEzxdekiCQ4M4!Nsc58te)(u$O;JIguwA?H3Q9yM(6TL0%`eX_ z4cXbaSwE^ls-$s^xcR0z%4=r>*~W*UwEd>-m`>Tw<;;?`YL%=)#>$2aMyngC=)lFJ zeUF~=1(`a0k^HQ7_I<$15_AAm^uz3w)zO*rN_!c_F7$vWpYfSq1a<2-w_ji7Th0?M%1mEd(;y$l&6GM%z zcb8|P07C73Cx=gtFK~4Xx&dvxVVo3e9j{U{eeYdp^=>*kFmbH!(SWZixKUL1S6$(| z#RO4$+^laIS==VXY#O|^_w}@H6{7X?)DBrcr{}b4|N3=JzaIIG9k&1OtgiaqmFU3u z;lAyPuPT#BJUP}?VNxVmeQWYNtGa}|sJ0}fLpn={wV?>KrpbL+|I&^h>M`Yd4~{1lv}_P_5XTAhZsP2nxo<>1c9wjv(bU8iN4RD68sgN z@*ra)I-bXBTbtrzX@OUJjm|p?6KfL6$|e}xCHszfaEs;f4oYf&sDr4mQ4X#|8sVVZ zCg1k3yCcYic?LT5K@!_<6QRReMXQq9^r5 zain1Cp2RR~_Y@b5*b}_O7Ly7t-c>g5vMD9$x&D1nAa@bE%w(hJ! zknVKf=SEPsA>1hv?GO^eltU;QrW^i6yGk_(i?U{rwDvWF(xxjz$XQ***vhU)2PRMU z{ctTv@cdquh@GE?37r=V6S-f(t`az6P!>0&v@dHQ!dw8Vp{|&5{2%W9Ap!uC0Q>J# zy=O-Ut|j`mKNHlPOcSSwUemiMJSI-1Ytwwxz0UPsov&TyR9k~^jjaAn#HV-R(zC6| z#~AuYFEj-GN-Z!=LBArvh;K$*=;>`UTlvUlbFs*UtJ(&is*-H-Br(Y9O|$XI7s>|p z@w76@`c2dC{y(Dqp{D&|WVK7Je@nX^9he{QdlU`QGd@Wr8M&MqrfYKPl(^i^qisl! z`Ql;Elx8Qj4cm*XYbdD`nub|uVwLGuEJs8z-k=DmvCE(~DS|o%kLcnF_??ggXF`?* zZ$l>p!ilktpI6$D{r|qE{eI+oU1k4UJ^ARs^>clX#JIN9F}o2G$?QGJVM^yI-nij= zF6>szKT;rKm!d7P(z5yU^iG&RC&tX5C&;7! zfc}49kN=Ay<9`}Ok$i-h7N(hE*~YztcvUCWaW@SLA{!y&e-Q-c7sRxtps(W*2u;@= zh;?)ld`ee#1SGK&UVySe$7Qs#M*4sKkftAsY<5-u-!wDT@+Z-O>C=7N4}y9s5;cE*^b?W4tfiVZny?Etla=Ve>BD_hwpW$n>h7r}2_7ldl;Se*?!YA_ zdA4^8E{*Y!Qh_^g3+cQSvgbDEz%hD|+u?B2`vne3<8aq;2SCmB1)Ovz(MCk&fdHg*!U>?JQxAaZXr%v-Y-o`U z<9wJgt9*q(y9jhkhp?HvC?YspG zsPh|xubYDzc$5O$X!amhSTwkan2nAX7ow2Gc~e zaU)3sOxk29O3`YdB!QxVf={+~SB|`?tLdCW*+()s^f1tKfB$t87p9jE+D01Lr&-Is@sq;aTuNWe|)#m*q|-mtL`QD4BqUpM=9R z(O4YiEtPC@BV96~j8$N2t`npJNfibe7lleL z2RT&BnH0HS%YgS;19c-Lpjk)n@JR7`YM3JuAf-`@yQ_l_P>8NBX@RX}g4 z;Szj*B4`|u$x;XTh6Fn0;a-sCFnuZMY3)WpB!p82B`K>tC1J*8XGl93_Vv_}X39tiiU%Df=V~jy+=TMsCO`E#)U&(P3k$6|h%T`%xc>sH<_ z_@bTQ;pe|P4-JQUC@r)dek)va?9nxozKuZ^=;rx z-~bLo4xNt(YeQlnD;qkX{d++35wA7Kr{S^6ZnCKL;b0?zF3Mp4RhYdEm}=Wknl4W4 zGxyFGAwaJfG}#s!EOdKR0rp_X>9QoI+};tD)b}>fB{%7Ob|UP-%>Ic?EMRz=s$kK$Af4 nKx+tQ^h&fR7as$2-MQEpW|biqHoOh>I+&W<)BANfhaUcarrvA8 literal 0 HcmV?d00001 diff --git a/empty_library/metadata_db_prefs_backup.json b/empty_library/metadata_db_prefs_backup.json new file mode 100644 index 0000000..d182b15 --- /dev/null +++ b/empty_library/metadata_db_prefs_backup.json @@ -0,0 +1,590 @@ +{ + "field_metadata": { + "cover": { + "label": "cover", + "kind": "field", + "search_terms": [ + "cover" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "int", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 17, + "column": null, + "name": "Couverture" + }, + "uuid": { + "label": "uuid", + "kind": "field", + "search_terms": [ + "uuid" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 16, + "column": null, + "name": null + }, + "series": { + "label": "series", + "kind": "field", + "search_terms": [ + "series" + ], + "table": "series", + "is_multiple": {}, + "is_csp": false, + "datatype": "series", + "link_column": "series", + "is_custom": false, + "category_sort": "(title_sort(name))", + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 8, + "column": "name", + "name": "S\u00e9rie" + }, + "pubdate": { + "label": "pubdate", + "kind": "field", + "search_terms": [ + "pubdate" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "datetime", + "is_custom": false, + "display": { + "date_format": "MMM yyyy" + }, + "is_category": false, + "is_editable": true, + "rec_index": 15, + "column": null, + "name": "Publi\u00e9" + }, + "au_map": { + "label": "au_map", + "kind": "field", + "search_terms": [], + "table": null, + "is_multiple": { + "list_to_ui": null, + "ui_to_list": null, + "cache_to_list": "," + }, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 18, + "column": null, + "name": null + }, + "rating": { + "label": "rating", + "kind": "field", + "search_terms": [ + "rating" + ], + "table": "ratings", + "is_multiple": {}, + "is_csp": false, + "datatype": "rating", + "link_column": "rating", + "is_custom": false, + "category_sort": "rating", + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 5, + "column": "rating", + "name": "Note" + }, + "news": { + "label": "news", + "kind": "category", + "search_terms": [], + "table": "news", + "is_multiple": {}, + "is_csp": false, + "datatype": null, + "is_custom": false, + "category_sort": "name", + "display": {}, + "is_category": true, + "is_editable": true, + "column": "name", + "name": "Actualit\u00e9s" + }, + "authors": { + "label": "authors", + "kind": "field", + "search_terms": [ + "authors", + "author" + ], + "table": "authors", + "is_multiple": { + "list_to_ui": " & ", + "ui_to_list": "&", + "cache_to_list": "," + }, + "is_csp": false, + "datatype": "text", + "link_column": "author", + "is_custom": false, + "category_sort": "sort", + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 2, + "column": "name", + "name": "Auteurs" + }, + "timestamp": { + "label": "timestamp", + "kind": "field", + "search_terms": [ + "date" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "datetime", + "is_custom": false, + "display": { + "date_format": "dd MMM yyyy" + }, + "is_category": false, + "is_editable": true, + "rec_index": 3, + "column": null, + "name": "Date" + }, + "sort": { + "label": "sort", + "kind": "field", + "search_terms": [ + "title_sort" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 11, + "column": null, + "name": "Tri par titre" + }, + "tags": { + "label": "tags", + "kind": "field", + "search_terms": [ + "tags", + "tag" + ], + "table": "tags", + "is_multiple": { + "list_to_ui": ", ", + "ui_to_list": ",", + "cache_to_list": "," + }, + "is_csp": false, + "datatype": "text", + "link_column": "tag", + "is_custom": false, + "category_sort": "name", + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 6, + "column": "name", + "name": "\u00c9tiquettes" + }, + "publisher": { + "label": "publisher", + "kind": "field", + "search_terms": [ + "publisher" + ], + "table": "publishers", + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "link_column": "publisher", + "is_custom": false, + "category_sort": "name", + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 9, + "column": "name", + "name": "\u00c9diteur" + }, + "title": { + "label": "title", + "kind": "field", + "search_terms": [ + "title" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 1, + "column": null, + "name": "Titre" + }, + "marked": { + "label": "marked", + "kind": "field", + "search_terms": [ + "marked" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 23, + "column": null, + "name": null + }, + "formats": { + "label": "formats", + "kind": "field", + "search_terms": [ + "formats", + "format" + ], + "table": null, + "is_multiple": { + "list_to_ui": ", ", + "ui_to_list": ",", + "cache_to_list": "," + }, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 13, + "column": null, + "name": "Formats" + }, + "languages": { + "label": "languages", + "kind": "field", + "search_terms": [ + "languages", + "language" + ], + "table": "languages", + "is_multiple": { + "list_to_ui": ", ", + "ui_to_list": ",", + "cache_to_list": "," + }, + "is_csp": false, + "datatype": "text", + "link_column": "lang_code", + "is_custom": false, + "category_sort": "lang_code", + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 21, + "column": "lang_code", + "name": "Langues" + }, + "id": { + "label": "id", + "kind": "field", + "search_terms": [ + "id" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "int", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 0, + "column": null, + "name": null + }, + "ondevice": { + "label": "ondevice", + "kind": "field", + "search_terms": [ + "ondevice" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 22, + "column": null, + "name": "Sur le dispositif" + }, + "size": { + "label": "size", + "kind": "field", + "search_terms": [ + "size" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "float", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 4, + "column": null, + "name": "Taille" + }, + "identifiers": { + "label": "identifiers", + "kind": "field", + "search_terms": [ + "identifiers", + "identifier", + "isbn" + ], + "table": null, + "is_multiple": { + "list_to_ui": ", ", + "ui_to_list": ",", + "cache_to_list": "," + }, + "is_csp": true, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": true, + "is_editable": true, + "rec_index": 20, + "column": null, + "name": "Identifiants" + }, + "series_index": { + "label": "series_index", + "kind": "field", + "search_terms": [ + "series_index" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "float", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 10, + "column": null, + "name": null + }, + "author_sort": { + "label": "author_sort", + "kind": "field", + "search_terms": [ + "author_sort" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 12, + "column": null, + "name": "Tri par auteur" + }, + "last_modified": { + "label": "last_modified", + "kind": "field", + "search_terms": [ + "last_modified" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "datetime", + "is_custom": false, + "display": { + "date_format": "dd MMM yyyy" + }, + "is_category": false, + "is_editable": true, + "rec_index": 19, + "column": null, + "name": "Modifi\u00e9" + }, + "path": { + "label": "path", + "kind": "field", + "search_terms": [], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 14, + "column": null, + "name": "Chemin" + }, + "series_sort": { + "label": "series_sort", + "kind": "field", + "search_terms": [ + "series_sort" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 24, + "column": null, + "name": "Tri par s\u00e9rie" + }, + "comments": { + "label": "comments", + "kind": "field", + "search_terms": [ + "comments", + "comment" + ], + "table": null, + "is_multiple": {}, + "is_csp": false, + "datatype": "text", + "is_custom": false, + "display": {}, + "is_category": false, + "is_editable": true, + "rec_index": 7, + "column": null, + "name": "Commentaires" + } + }, + "saved_searches": {}, + "bools_are_tristate": true, + "tag_browser_hidden_categories": [], + "library_view books view state": { + "last_modified_injected": true, + "hidden_columns": [ + "last_modified", + "languages" + ], + "sort_history": [ + [ + "authors", + true + ], + [ + "series", + true + ], + [ + "title", + true + ], + [ + "authors", + true + ], + [ + "series", + true + ], + [ + "title", + true + ], + [ + "timestamp", + false + ] + ], + "column_sizes": { + "tags": 101, + "rating": 60, + "languages": 0, + "last_modified": 0, + "timestamp": 72, + "publisher": 81, + "size": 104, + "series": 63, + "title": 60, + "pubdate": 71, + "authors": 95 + }, + "column_positions": { + "tags": 6, + "rating": 5, + "languages": 11, + "last_modified": 10, + "timestamp": 3, + "publisher": 8, + "ondevice": 0, + "size": 4, + "series": 7, + "title": 1, + "pubdate": 9, + "authors": 2 + }, + "languages_injected": true, + "column_alignment": { + "size": "center", + "timestamp": "center", + "pubdate": "center" + } + }, + "grouped_search_terms": {}, + "user_categories": {} +} \ No newline at end of file diff --git a/manifest.json b/manifest.json index 52a2847..d3fdb45 100644 --- a/manifest.json +++ b/manifest.json @@ -26,7 +26,7 @@ "install" : [ { "name": "domain", - "type": "domain", + "type": "domain", "ask": { "en": "Choose a domain name for BicBucStriim", "fr": "Choisissez un nom de domaine pour BicBucStriim" @@ -35,7 +35,7 @@ }, { "name": "path", - "type": "path", + "type": "path", "ask": { "en": "Choose a path for BicBucStriim", "fr": "Choisissez un chemin pour BicBucStriim" @@ -45,13 +45,21 @@ }, { "name": "admin", - "type": "user", + "type": "user", "ask": { "en": "Choose an admin user", "fr": "Choisissez l’administrateur" }, "example": "johndoe" }, + { + "name": "admin_pwd", + "type": "password", + "ask": { + "en": "Choose a password for the admin user", + "fr": "Choisissez un mot de passe pour l’administrateur" + } + }, { "name": "login", "type": "boolean", diff --git a/scripts/backup b/scripts/backup index af8ccd9..cceb424 100644 --- a/scripts/backup +++ b/scripts/backup @@ -12,6 +12,9 @@ source /usr/share/yunohost/helpers # Backup sources & data # Note: the last argument is where to save this path, see the restore script. ynh_backup "/var/www/${app}" "sources" +admin=$(ynh_app_setting_get "$app" admin) +books_path=/home/$admin/calibre_library +ynh_backup "$books_path" "data" ### MySQL (remove if not used) ### # If a MySQL database is used: diff --git a/scripts/install b/scripts/install index e717c6f..5b828d3 100644 --- a/scripts/install +++ b/scripts/install @@ -20,6 +20,7 @@ path=$YNH_APP_ARG_PATH admin=$YNH_APP_ARG_ADMIN is_public=$YNH_APP_ARG_IS_PUBLIC login=$YNH_APP_ARG_LOGIN +admin_pwd=$YNH_APP_ARG_ADMIN_PWD # Source YunoHost helpers source /usr/share/yunohost/helpers @@ -32,15 +33,23 @@ ynh_app_setting_set "$app" is_public "$is_public" sudo yunohost app checkurl "${domain}${path}" -a "$app" \ || ynh_die "Path not available: ${domain}${path}" +# Install dependencies +if ! ynh_package_is_installed "php5-sqlite" ; then + ynh_package_install php5-sqlite +fi + # Copy source files src_path=/var/www/$app sudo mkdir -p $src_path -sudo wget -P "$src_path" http://projekte.textmulch.de/bicbucstriim/downloads/BicBucStriim-1.3.6.zip -O "$src_path"/bbs.zip +sudo wget -q -P "$src_path" http://projekte.textmulch.de/bicbucstriim/downloads/BicBucStriim-1.3.6.zip -O "$src_path"/bbs.zip sudo unzip -q "$src_path"/bbs.zip -d "$src_path" sudo cp -R "$src_path"/BicBucStriim-1.3.6/* "$src_path" sudo rm "$src_path"/bbs.zip sudo rm -rf "$src_path"/BicBucStriim-1.3.6 +books_path=/home/$admin/calibre_library +cp -r ../empty_library $books_path + # Disable BicBucStriim login if checked if [[ $login -eq 1 ]]; then sudo sed -i -- 's/\[LOGIN_REQUIRED\] = 1/\[LOGIN_REQUIRED\] = 0/g' "$src_path"/index.php @@ -49,7 +58,23 @@ fi # Set permissions to app files sudo chown -R root: $src_path sudo chmod -R ga+w $src_path/data +sudo chown -R $admin "$books_path" +cp password.php $src_path/ynh_password.php +cd $src_path +hash=$(php ynh_password.php $admin_pwd) +rm ynh_password.php +cd - +mail=$(ynh_user_get_info $admin mail) +if ! ynh_package_is_installed "sqlite3" ; then + ynh_package_install sqlite3 + echo "INSERT INTO config (name, val) VALUES ('calibre_dir', '$books_path');" | sqlite3 $src_path/data/data.db + echo "UPDATE user SET username = '$admin', password = '$hash', email='$mail' WHERE id = 1;" | sqlite3 $src_path/data/data.db + ynh_package_remove sqlite3 +else + echo "INSERT INTO config (name, val) VALUES ('calibre_dir', '$books_path');" | sqlite3 $src_path/data/data.db + echo "UPDATE user SET username = '$admin', password = '$hash', email='$mail' WHERE id = 1;" | sqlite3 $src_path/data/data.db +fi # Modify Nginx configuration file and copy it to Nginx conf directory nginx_conf=../conf/nginx.conf @@ -61,6 +86,8 @@ sudo cp $nginx_conf /etc/nginx/conf.d/$domain.d/$app.conf if [[ $is_public -eq 1 ]]; then # unprotected_uris allows SSO credentials to be passed anyway. ynh_app_setting_set "$app" unprotected_uris "/" +else + ynh_app_setting_set "$app" skipped_uris "/img/,/js/,/style/" fi # Reload services diff --git a/scripts/password.php b/scripts/password.php new file mode 100644 index 0000000..4769f90 --- /dev/null +++ b/scripts/password.php @@ -0,0 +1,6 @@ + diff --git a/scripts/remove b/scripts/remove index 9a5dc51..667bfef 100644 --- a/scripts/remove +++ b/scripts/remove @@ -8,10 +8,18 @@ source /usr/share/yunohost/helpers # Retrieve app settings domain=$(ynh_app_setting_get "$app" domain) +admin=$(ynh_app_setting_get "$app" admin) +books_path=/home/$admin/calibre_library + +# Remove php5-sqlite dependency +ynh_package_remove php5-sqlite # Remove sources sudo rm -rf /var/www/$app +# Remove calibre library +sudo rm -rf $books_path + # Remove nginx configuration file sudo rm -f /etc/nginx/conf.d/$domain.d/$app.conf diff --git a/scripts/restore b/scripts/restore index a83fa6d..9df957c 100644 --- a/scripts/restore +++ b/scripts/restore @@ -15,6 +15,7 @@ source /usr/share/yunohost/helpers # Retrieve old app settings domain=$(ynh_app_setting_get "$app" domain) path=$(ynh_app_setting_get "$app" path) +admin=$(ynh_app_setting_get "$app" admin) # Check domain/path availability sudo yunohost app checkurl "${domain}${path}" -a "$app" \ @@ -24,9 +25,13 @@ sudo yunohost app checkurl "${domain}${path}" -a "$app" \ src_path="/var/www/${app}" sudo cp -a ./sources "$src_path" +books_path=/home/$admin/calibre_library +sudo cp -a ./data "$books_path" + # Restore permissions to app files # you may need to make some file and/or directory writeable by www-data (nginx user) sudo chown -R root: "$src_path" +sudo chown -R $admin "$books_path" ### MySQL (remove if not used) ### # If a MySQL database is used: