From f3ffd6e782ef2fc10cf5f5dab41f8e333cc54d7d Mon Sep 17 00:00:00 2001
From: Lazorne <thelazorne@protonmail.com>
Date: Mon, 19 Feb 2024 18:56:13 +0100
Subject: [PATCH 01/12] Added ScummVM Radial Icons

---
 res/binding_icons/rd-pc-call.png   | Bin 0 -> 440 bytes
 res/binding_icons/rd-pc-close.png  | Bin 0 -> 4298 bytes
 res/binding_icons/rd-pc-fight.png  | Bin 0 -> 278 bytes
 res/binding_icons/rd-pc-give.png   | Bin 0 -> 377 bytes
 res/binding_icons/rd-pc-look.png   | Bin 0 -> 2439 bytes
 res/binding_icons/rd-pc-move.png   | Bin 0 -> 277 bytes
 res/binding_icons/rd-pc-open.png   | Bin 0 -> 4660 bytes
 res/binding_icons/rd-pc-pickup.png | Bin 0 -> 340 bytes
 res/binding_icons/rd-pc-pull.png   | Bin 0 -> 447 bytes
 res/binding_icons/rd-pc-push.png   | Bin 0 -> 341 bytes
 res/binding_icons/rd-pc-read.png   | Bin 0 -> 747 bytes
 res/binding_icons/rd-pc-talk.png   | Bin 0 -> 591 bytes
 res/binding_icons/rd-pc-use.png    | Bin 0 -> 1526 bytes
 13 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 res/binding_icons/rd-pc-call.png
 create mode 100644 res/binding_icons/rd-pc-close.png
 create mode 100644 res/binding_icons/rd-pc-fight.png
 create mode 100644 res/binding_icons/rd-pc-give.png
 create mode 100644 res/binding_icons/rd-pc-look.png
 create mode 100644 res/binding_icons/rd-pc-move.png
 create mode 100644 res/binding_icons/rd-pc-open.png
 create mode 100644 res/binding_icons/rd-pc-pickup.png
 create mode 100644 res/binding_icons/rd-pc-pull.png
 create mode 100644 res/binding_icons/rd-pc-push.png
 create mode 100644 res/binding_icons/rd-pc-read.png
 create mode 100644 res/binding_icons/rd-pc-talk.png
 create mode 100644 res/binding_icons/rd-pc-use.png

diff --git a/res/binding_icons/rd-pc-call.png b/res/binding_icons/rd-pc-call.png
new file mode 100644
index 0000000000000000000000000000000000000000..66e1069727291b35d4152c2a0ed65d08f9d037a8
GIT binary patch
literal 440
zcmV;p0Z0CcP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80004VNkl<ZScUCY
z!I6V73|!w`0V%<ys1!O0sU#`IbYeP42fBwaHa1|HaF3f|XEMZ+U{@=f1h{bFpMtaR
zyj57k*Aa4NHxn~EFc+f!49x7(j@dbhF&}fH#eubl8=|;yZnN%V0l{_vR3wL?jGZlD
zhB3%zZis+kkVW4wa%T#lsKLlJub4*A1g!v*b)J$lvyc<XC&Zy}qUfT6f*cUr?|0zw
z0KAt(*U5Dfw8`_+C}1W9r0Zb&IL3nKb17yIO~;T~#t<xjy(EzmwU7gP2bekT^fgSo
zzi^`K0HR`a%>ot(orgIC;)wTAh}MZCzXbpQYnOX~NMhE?dK`6QXgLL(5(1GRkmd;a
z$+1<g!w#g~t#zs)-%VtgyZ1hJT(h`F4(J?MkZXvo)sbri6y!P4T5LKADtGsan#jZP
zQ#@ByxJ#akXz4h|_eQ)2fcJa<=G*Nv^4g7@zUgwb&Uy=n-vei%roQ%v;-l^_0KhLJ
iCb-Z>i7~PO0000<MNUMnLSTXb0000<MNUMnLSTXltHUw?

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-close.png b/res/binding_icons/rd-pc-close.png
new file mode 100644
index 0000000000000000000000000000000000000000..10582266772600c0f9904d5cd75a2cce8ecb8c0a
GIT binary patch
literal 4298
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

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-fight.png b/res/binding_icons/rd-pc-fight.png
new file mode 100644
index 0000000000000000000000000000000000000000..4b5e5c787ed75498f2962241740b63bc31f8a961
GIT binary patch
literal 278
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=ffJi=HlyArY-_ry24!If%HhSD#;?
zCf6XrcYtxp<_$}}NKBb>`&MLdVM}}gL;nFmj;X9CZ!j3HaOBaM^=G=z?$1WiZ<tQ;
zAF>LIC^_A0C@|6Oh?P!P(=myzj;pF6PO2e~{;OOv3GECQ3TvIGl2>^`<=eA~GZyce
zx?+{_<Qt2#e{$XWWW+7O$iw(rNN4i`%_TL84|^0p7Vs%EST<zOooLm@d9p!uSNtZ!
zf*OWwhP=6UohuhGOzA#<Iq_>*r>0m2P<Z!Sq2qtk4$Z1dtJW8Js{GE;{z<g#msucR
QGkCiCxvX<aXhLQK0Px^!!2kdN

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-give.png b/res/binding_icons/rd-pc-give.png
new file mode 100644
index 0000000000000000000000000000000000000000..a9f327c46cb6408d0743b20a7099a14d93ac3d5e
GIT binary patch
literal 377
zcmV-<0fzpGP)<h;3K|Lk000e1NJLTq001BW001Be0{{R3M5Kzw0000dP)t-s00000
z001Zq1~wZALK6x?A_`tG4tPBhcvTXVX%?=08sDHN|Ns9L#WAP=0004WQchC<K<3zH
z00031Nkl<Zc-pPbL2|?(3`EgLY6*LM|NExfFa?ZLS)`(c7k(eX*Wbp>es?td+?c&R
z4E`+oPxGQXmpr^GjGplRvB%B9pK<T6@Xt#mbT6HkXTu(}l7~BrX)jmzmJsUm_ALkz
z4~yL*u|L8*1x&JNQSyd0pjWb}rd9Hy&w!Mj3jGl+)*Fn1QLxdv&Es$+vKsnJ6S`zQ
z9;XV72Oz_zlh3%~>IGEnUX&v|Uw6?|$T{Qu3wQ-C9aEtVa?QBl;@RssJ<<Ulmv6xV
zBp>N_5o7(n0tg=?UV~ZOO^|mVMFSG9*?ATP4*kJ%M<L}?_d-i5ebr~eS^PP3`~S{2
XV+01v?olC`00000NkvXXu0mjfpj(@H

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-look.png b/res/binding_icons/rd-pc-look.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa94baee683a0108d14e2c33dbbec544e1188dca
GIT binary patch
literal 2439
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
FV1f}VvpE0&

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-move.png b/res/binding_icons/rd-pc-move.png
new file mode 100644
index 0000000000000000000000000000000000000000..8a9635b9066233ba06f4dc9c4ace7a4a7c7f2bbb
GIT binary patch
literal 277
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyx&b~Ru0Z<r10caLAxd#Vw9=+c
zn~tq$KY#xGr9RioeJ)q}UGA<ZxVN$ZsOJCw|1X(M3V}+QN`m}?8H`Uluh9eYrh2+K
zhE&`-JJFHrumKOt+QQ(Y8~^-&FDC8O(Qzes;o&AeDY2C4@eFsCwHvZ2ZF;tu!Kg7n
zAd<z&(NClQgsajA*92v;8P#*$zVK~W`D)r6PK_gnBo?fZ{KtA~mg0(dC%p@2CHEcR
z`@~kglxgj5uI=|%N8Z((Q^+f^H}L+7xI*`Dw-y|jYQ5!_rr{RxX<TVHCQ6<8qb=X6
V$-=?NS+o-5HBVPRmvv4FO#mw_Z7=`;

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-open.png b/res/binding_icons/rd-pc-open.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5db7d36c1d2826d3d11d4f88e3d6de034fadf18
GIT binary patch
literal 4660
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

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-pickup.png b/res/binding_icons/rd-pc-pickup.png
new file mode 100644
index 0000000000000000000000000000000000000000..7419254329290707334b93ab331f3e7969d07501
GIT binary patch
literal 340
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVF!Fo4IEF;DzMXcP_pkzw>-yF2
z7#ABxxt-K7==?o#!lyol<w2_N!k4Jnxo>mkUbAM+pUj9=7qVH-ok<ef%cMR><;Gp6
zM+GGz-49%1-<w_D%gkz#oFpH`v@c`r*EjFa>ZGpiJ#$7usUTpQMwNn=q1Ci<Ub$;U
zdV4BgE(vnB4wP*yZrHl=W_X*%I}R5219Bo<8M5|ELe4EcykfQRRoM+@?;W%rtEL?b
zxW&l8ZX^03A-n(e&7arfp493e-a0LNum7$V*9wW}f0QmAony&<Nbtk9tq<)!It7&(
zY87yYczr8p=x}#9wncTx!<7ft9ud}@+v3_;%(JPUO^Zp=!j`pO(czd4_dW;n?}ziF
h_x#mn_`rDfZszJeii^JkLx{oC)z4*}Q$iCm8vu%Xj6VPX

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-pull.png b/res/binding_icons/rd-pc-pull.png
new file mode 100644
index 0000000000000000000000000000000000000000..892d0748f58fd2520dfb259c9475a7227da5ce4c
GIT binary patch
literal 447
zcmV;w0YLtVP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80004cNkl<ZScT=6
z(UHR-3`CckD}+w$Qg9_nDoNZ4bV4V(4@HjbBLQLi=Wb^*2?mcID+B@f?{dcRwBy~P
zzAV9s03slS1!ns>O+*BW5flRdF133gEDo$R&p^(vc1pnY%CJWR5D^E+8SsAHDQ)T7
zq~{QTB|xiWt+YUxQ=mb%Zs=zzwLvrkl!6Vz`!TJKnH<mobnZ2fB~<|MUFoL~fN5Gk
zoF?FY2X41AoJF<Wj7Vj0o`D#D5Aq(kTo_0k2!S1O?sJ@`6r{w#WtQFp<M`^&nO)KL
zmq5D#hJk~|$ln6;tofpHuFt*&z&Z804z8bV+ad58X;JHmwycGe*7l0+0y2(mxfj){
zK;)d`4Mji%qIdOM0RW!O+g(l4W0}1b0C+l~OY`yA=R)^!4AjqsGXR#Od8^jC-wRNb
zb^kvEU{6pj>mvLpfg%E)Wm~NT^S@%9|07)JN`VC40`vg20-Q2?3qUn+FOcPWWxaG9
pa&`Or`T_C;sa;yNQ6m5V002ovPDHLkV1fVu002ovPDHLkV1jJ>!(spc

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-push.png b/res/binding_icons/rd-pc-push.png
new file mode 100644
index 0000000000000000000000000000000000000000..1eec6137e45216c4537df788f21fce2d94fdda77
GIT binary patch
literal 341
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=hEVFba6OIEF;DzMXbZutkB#b-(rP
z_L4<QBe;O5Oi25roQbl<iW!}6j@EZBHmGd*z*_P3)%h&0;~R_aEwxiU*~yT`-zmAk
zozY=RubMzO!=7~(+#$>gll&K54ZFio;l|4FZ$HE3Ek^}jF>NrpE!^qNz_*p*rxnAd
zs?JTSVL_6CrVSQ}clccn*r+>8din2IbD-{Oq3MxHGxy$_v9Da6p`qA2C%QqBVb3n}
zJZ1~_FSZv-qn+CrD)=2f&JGJ@@aXlN{fDQav!T!@-s|Pu+w;O#>T9%%-Y}m(#m+0Q
zNc+@WCOhlz(@qvM=p5Jn_P^rmwNt+uX87{HtzJ-=XE-_0!#?7DZRe3VOBREP_wsZT
e<7U2QulQEETsK)>1sFsOp00i_>zoprkl6rTG=-l4

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-read.png b/res/binding_icons/rd-pc-read.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9880d85db87467c0051e080b1295951d23b097b
GIT binary patch
literal 747
zcmV<H0u=p;P)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80007}Nkl<ZScUCY
zEsxtk6r5C5kb@Fg3oNA|po)sD1BFrf6`hI;?<W)%7FC6ThpYU6qLaaag2*~#6&N^@
zrLG)@oQ*<K;LPjVvEw+sQ^}2FIZnJg^Jd>ifM@(?^qzSCT^rX^3fMi|T>=37FvIMl
zSIhU}F^KA}hr3JoVFmz5bdKw*G2boWWy{7yui<-q|8gOpZDk?RIc#O2?+k%36A{X(
zH@iu|&byf*(K&9HYs?obA@y!%004I~0Dw}IBu{jXZM=ay8Q{m=Z`jJh?Q(sx0I|<j
z7T#SH>ZfW1TUkQfcZS%;8xiC49%cx1iucYNY~zgxYI2}92l~zs?qnbiOw~w!^TVt}
z{&x0CTp*@ugl)WmA7)5&UQ2vb0Euj60RRG>mZB&5feU-WK&KLftt{Bef{qXJ@3;Uu
zz=#r^A4E!Wf;mv<K&K<%VuB7(7^CN%-|@WZfGMn#1Ezg+faDamjW?wu@WZUMhE>4l
zvm7w9msYxy0s79cmYi#*YJ|QsEV+1=16&yBREYdA!#3WC10*pW2y`kAFfTeeV8ZMH
zbij1Vd^R26GxMSetz}3Ds+%y$7&-8_3d}NWLu(mUyC54;RctkBtCiH01C7Ioi;IQ(
z9M}u{=|vJ<btV9iR_p>Y3zU<d?tocBbbw^0<xR(6wr=J?=T69ks#ZaD81X&cnFHn?
zK*w>+S$<5M3mmj&GvnDKIEFh3sP_2kG)#1kulEtAY9!GHI>qO2k-SICe}yZ&o{YOE
zA!j_WMxav>;oTP`1zA*GCSlGOtKI%@n26{kzz;Ja1BwVgd|K9$HNhmFFIKf{>NeS3
zUyY%h9y~8<-Jk`nf6E)I!1E#iMHK&lo^dt4PzO0b;Oyv6!m&+T?R&;!;19*-<ntx&
dhU)+T002ovPDHLkV1fVu002ovPDHLkV1j+pQ+oga

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-talk.png b/res/binding_icons/rd-pc-talk.png
new file mode 100644
index 0000000000000000000000000000000000000000..7894fc6bf16c1db29df489cbc5f210219156fc67
GIT binary patch
literal 591
zcmV-V0<iswP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F80006CNkl<ZScUCY
zEpNg=7=BnL!2vlE5+Fe=hzWv35ENo^f}gNV@e``2koyS}lM^UXfovKSK{Q#LkZ>tD
z>N^2<^yqpYKr%5N)%ITQeR$qa;D#Ii7`Zck6JPUA6XO^FUY=`Gqxa9i=x$vCu{Ej#
z09vFd94zQoc&Dp4Nkn<S4uRMj)dk08k_P~UG!lrkND&LVH6n3m;(XApV9>1q0NTw0
zC&HXFkm}y&Azad&Q4tW}dONt@4((<EuD9dg**|B`NfIi^tWwfv;WQ7DpsQFKihJel
z0H)4Hc<*;gTz-4*r((~bqk@va)Y)L^1;V$b7r+|zq&9ohlq9rr;GtQQzAwE%X_Ez|
z0!O(UyzI&(kB_f!yp0}V&yTjR!w!FDd2t#RV*+K87aX^n1x#k^lpT{=mXN<e8G?{T
zD3d$}-3me)VKQ6u1UyC3xlZ+{2;{7>j|JT#q!F+Cq#_I~-Yrt(j#*Wxx}jDXGU;9H
z6`49444)dD6shJ8u|75<-B4%|2x$Zt;3R;3U$EzX%2ro;BLYbhA&t=Qlwgf*;k?(Y
z129iQ<7s%BfFX^9Ilu<f)Y)iFLu~~B*72Ooa~u94A@x<z>4dx*0C|T?p6M<mMhf&h
zCF!~D2u{LiCuF&hwGjd8@p}mYP69~Ry6G->E&(88J2u^hFCichxzb(#7(aGt_u_du
dyTAYd002ovPDHLkV1fVu002ovPDHLkV1iNA`eFb8

literal 0
HcmV?d00001

diff --git a/res/binding_icons/rd-pc-use.png b/res/binding_icons/rd-pc-use.png
new file mode 100644
index 0000000000000000000000000000000000000000..3234426bbaa680ceb55c22f1bddf0334921e3472
GIT binary patch
literal 1526
zcmV<S1qu3zP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru+5#902si94c^?1(1%pXM
zK~z}7y_a2RR7VuYe|NLlW}~gwXsQXZULR^C(3%%f+t6ODf+dx%l!E4=1W~a`Wb;x?
zlNVoNDZXqleo#dgO093Mw3O&dyq2vtq^%nSA8a7k5);?3CNUqI-h50SHg|IOD@noj
zz_85RIrIO|f6h5O1OKxbh9R7NCCePK#2U)WB&4JRkBp2g>Y%D>wlzdLv5}FHY;#jo
z&~;sL+u%;%Xf&FWKsrHHRfRA>(KAUbX1cB`Sru5!LZJ|<s-}=oP2a+zjY&o9@3|Ck
znmgNZ<WfV|^$e2cRX7=(mo@-;BSKYG48u_V(`XKbLKuc&D<=R^yBA>u5W<jS%gThT
zivt7#0fNCGhGAfu=5lyRGDcwWRJ2LB(mzI{QB2cJk=`^-*=(CKYg7DuKA(Mz3ZMi#
zl1Czp+yR(1rvrfix~@}MSxGb+#V`yROq!-;ivz{>(=-jA&zCI)MXvN;R-gm|0aR6`
zwzgJ0y0->^;ZZ^Vz$~8}8eP)AtD^{j{()Hl+ecZFfUQ7dV<Uk;fMdQW1zJ#&D0oG|
zotN8xCW*)3v$+g#I|kf2WKsYsD=X!|F<+El4HI2M*}O9@x;lzjy(;-_Wufw~z@774
z4sgZMM0#WwXhE?<*BF@sT|?Qv_c_C(g5goY_+<91$_4H$#R?$Ai<5-%o7wO6DAi+@
zIP8Y~UJn2#CM*DUxRPU<rYY)_iCO@LnIxK2Ly=0%%r1aCVkGBri|R2;h^r-{ddw2n
z63JFQmTb=4J~5H(he9DL*MqLXNj<qnS4WW;=vgZUde(}+{#YxzI*P;+<$WOrVq-mg
z@b*PsjP=k8yfzY}v*M!+=3lSyh!YbQz7-w;D3$BMaMY*qNx{lOB}IDkDrg5X!5`gQ
z!{(iF;R2N3O1Hs0umfC4uWkUV9g9StA`BDZ_xm|{dYs`=A%pMIcM1G{KiYv5f2qju
zsK~qz?0Wd46I|T9c@uzmJT8A58X7n^X;D|`p{Aw=fa2m}yk4(dXm)lM%d&90-Q?%z
z1CU500BCD#leJ;{-shR6*d}9xkM(~l2TKZDQYLNLaGm1fVgSlkolQE<^wHVbNhA`n
z|E%OU0Kea#Qk3L{<co&}rz>>Q)6nu>aH!A<Gyq5y{C@Cyz4VXP190nhFU|G667bYn
z*uA?Bw|fT5vWUmybafO-0#bqB8PAZxmfmUY?d{YRdZ;V((A3nFB7Ha<rn$bC!PuN^
z&Go(9x^)Z7vM4VN%H0pf<}xlM8RkhG!}4CpAadr+8J;|OBKwI%f=DF7xz;|q@6U1f
z!9IC3aGB=%UQV5bc=<m3pLNiEe~yMP#{d)ufx!#{w){?;o}MNai=_YqR8>_0eUz+o
zQT()+H3gTLRE|@!&P7@2!XHNW{pplgvk54j6-UIbhZpIrIFhq?2qB2YVkyAo<>iju
zF4&}UJg2hryC?lZqI6aqq3TYHJbzE(7zYm?OpzKO5{b}UpA0q|-0Ssn%{WR~X&&!w
z4YF<XdA4mnPg!XmbuF7HFE8hvw|?O6gMCXrGDOv#79#Jr0?>SPBd5N3OnZAf{r&xf
z!(q;~_HpC(-xR4XO4hmPe)M??$(j$pm3<rBCOR}U#FZ;ovfhdp3dzI^cK&o6t?iN|
z(a_L9Q&W?iQ=}%vD=W?8=bi*!ua|H*Jg?9uIWN}{ElL1DYrDjzjjsdH_xPC{-?L{A
zbuCF1>>Wa8Jh)sg^78VSo}QLRR4C3c#K+5e=ZSZ>dU#{~LiB!rBSHIDukz>9LoyC*
z&@CIT6Q4RP=f1iAvMfwxtIpCtTAxvhZTv+E*!D}0MNLi3qEg!CEKKRan+Copfn`0_
cUdF@tA6o6cfZVCWCjbBd07*qoM6N<$f--x}n*aa+

literal 0
HcmV?d00001


From 831b4aeb97304903874b96989ff7bda29c8d49a0 Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 09:13:45 +0100
Subject: [PATCH 02/12] BRANCH_SELECTOR: added a new branch selector

---
 functions/branch_selection.sh | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)
 create mode 100755 functions/branch_selection.sh

diff --git a/functions/branch_selection.sh b/functions/branch_selection.sh
new file mode 100755
index 00000000..375fe74e
--- /dev/null
+++ b/functions/branch_selection.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# Fetch branches from GitHub API
+branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '{print $4}')
+
+# Create an array to store branch names
+branch_array=()
+
+# Loop through each branch and add it to the array
+while IFS= read -r branch; do
+    branch_array+=("$branch")
+done <<< "$branches"
+
+# Display branches in a Zenity list dialog
+selected_branch=$(zenity --list --title="Select Branch" --column="Branch" "${branch_array[@]}")
+
+# Output selected branch
+echo "Selected branch: $selected_branch"
\ No newline at end of file

From ceb462379daea6bd62278ac846e615bdde51454e Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 09:14:35 +0100
Subject: [PATCH 03/12] BRANCH_SELECTOR: added logger placeholders

---
 functions/branch_selection.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/functions/branch_selection.sh b/functions/branch_selection.sh
index 375fe74e..c245405d 100755
--- a/functions/branch_selection.sh
+++ b/functions/branch_selection.sh
@@ -2,6 +2,7 @@
 
 # Fetch branches from GitHub API
 branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '{print $4}')
+# TODO logger
 
 # Create an array to store branch names
 branch_array=()
@@ -13,6 +14,7 @@ done <<< "$branches"
 
 # Display branches in a Zenity list dialog
 selected_branch=$(zenity --list --title="Select Branch" --column="Branch" "${branch_array[@]}")
+# TODO: logger
 
 # Output selected branch
-echo "Selected branch: $selected_branch"
\ No newline at end of file
+echo "Selected branch: $selected_branch" # TODO: logger
\ No newline at end of file

From 998818d57ce19d0da5e4989bf260b1741861286c Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 09:42:18 +0100
Subject: [PATCH 04/12] BRANCH_SELECTOR: improved script

---
 functions/branch_selection.sh | 24 +++++++++++++++++-------
 1 file changed, 17 insertions(+), 7 deletions(-)

diff --git a/functions/branch_selection.sh b/functions/branch_selection.sh
index c245405d..d56534a0 100755
--- a/functions/branch_selection.sh
+++ b/functions/branch_selection.sh
@@ -1,8 +1,8 @@
 #!/bin/bash
 
-# Fetch branches from GitHub API
-branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '{print $4}')
-# TODO logger
+# Fetch branches from GitHub API excluding "main"
+branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}')
+# TODO: logging - Fetching branches from GitHub API
 
 # Create an array to store branch names
 branch_array=()
@@ -11,10 +11,20 @@ branch_array=()
 while IFS= read -r branch; do
     branch_array+=("$branch")
 done <<< "$branches"
+# TODO: logging - Creating array of branch names
 
 # Display branches in a Zenity list dialog
-selected_branch=$(zenity --list --title="Select Branch" --column="Branch" "${branch_array[@]}")
-# TODO: logger
+selected_branch=$(zenity --list --title="Select Branch" --column="Branch" --width=1280 --height=800 "${branch_array[@]}")
+# TODO: logging - Displaying branches in Zenity list dialog
 
-# Output selected branch
-echo "Selected branch: $selected_branch" # TODO: logger
\ No newline at end of file
+# Display warning message
+if [ $selected_branch ]; then
+    zenity --question --text="Are you sure you want to move to \"$selected_branch\" branch?"
+    # Output selected branch
+    echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch
+    zenity --info --text="The data will be now downloaded, please stand by."
+    # Do stuff here
+else
+    zenity --warning --text="No branch selected, exiting."
+    # TODO: logging
+fi

From 310324da57014534f39bdcb02a188138ee5dba8b Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 09:43:21 +0100
Subject: [PATCH 05/12] BRANCH_SELECTOR: moved in functions

---
 functions/branch_selection.sh | 30 ------------------------------
 functions/functions.sh        | 31 +++++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 30 deletions(-)
 delete mode 100755 functions/branch_selection.sh

diff --git a/functions/branch_selection.sh b/functions/branch_selection.sh
deleted file mode 100755
index d56534a0..00000000
--- a/functions/branch_selection.sh
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-
-# Fetch branches from GitHub API excluding "main"
-branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}')
-# TODO: logging - Fetching branches from GitHub API
-
-# Create an array to store branch names
-branch_array=()
-
-# Loop through each branch and add it to the array
-while IFS= read -r branch; do
-    branch_array+=("$branch")
-done <<< "$branches"
-# TODO: logging - Creating array of branch names
-
-# Display branches in a Zenity list dialog
-selected_branch=$(zenity --list --title="Select Branch" --column="Branch" --width=1280 --height=800 "${branch_array[@]}")
-# TODO: logging - Displaying branches in Zenity list dialog
-
-# Display warning message
-if [ $selected_branch ]; then
-    zenity --question --text="Are you sure you want to move to \"$selected_branch\" branch?"
-    # Output selected branch
-    echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch
-    zenity --info --text="The data will be now downloaded, please stand by."
-    # Do stuff here
-else
-    zenity --warning --text="No branch selected, exiting."
-    # TODO: logging
-fi
diff --git a/functions/functions.sh b/functions/functions.sh
index a03d1e35..16f27d3f 100644
--- a/functions/functions.sh
+++ b/functions/functions.sh
@@ -562,6 +562,37 @@ easter_eggs() {
   cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen
 }
 
+branch_selector() {
+    # Fetch branches from GitHub API excluding "main"
+    branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}')
+    # TODO: logging - Fetching branches from GitHub API
+
+    # Create an array to store branch names
+    branch_array=()
+
+    # Loop through each branch and add it to the array
+    while IFS= read -r branch; do
+        branch_array+=("$branch")
+    done <<< "$branches"
+    # TODO: logging - Creating array of branch names
+
+    # Display branches in a Zenity list dialog
+    selected_branch=$(zenity --list --title="Select Branch" --column="Branch" --width=1280 --height=800 "${branch_array[@]}")
+    # TODO: logging - Displaying branches in Zenity list dialog
+
+    # Display warning message
+    if [ $selected_branch ]; then
+        zenity --question --text="Are you sure you want to move to \"$selected_branch\" branch?"
+        # Output selected branch
+        echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch
+        zenity --info --text="The data will be now downloaded, please stand by."
+        # Do stuff here
+    else
+        zenity --warning --text="No branch selected, exiting."
+        # TODO: logging
+    fi
+}
+
 quit_retrodeck() {
   pkill -f retrodeck
   pkill -f emulationstation

From 44154a55a6a1d0912470f711d25bca1aedca7bcc Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 11:57:26 +0100
Subject: [PATCH 06/12] BRANCH_SELECTOR: enhanced scripting, put placeholders

---
 functions/checks.sh    |  1 +
 functions/functions.sh | 36 +++++++++++++++++++++++++++++++-----
 2 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/functions/checks.sh b/functions/checks.sh
index bb93b322..7b76d82f 100644
--- a/functions/checks.sh
+++ b/functions/checks.sh
@@ -59,6 +59,7 @@ check_for_version_update() {
         #   configurator_generic_dialog "RetroDECK Online Update" "The update process is now complete!\n\nPlease restart RetroDECK to keep the fun going."
         #   exit 1
         # fi
+        # TODO: add the logic to check and update the branch from the configuration file
         choice=$(zenity --icon-name=net.retrodeck.retrodeck --info --no-wrap --ok-label="OK" --extra-button="Ignore this version" \
         --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
         --title "RetroDECK Update Available" \
diff --git a/functions/functions.sh b/functions/functions.sh
index 16f27d3f..f5ae5368 100644
--- a/functions/functions.sh
+++ b/functions/functions.sh
@@ -562,6 +562,7 @@ easter_eggs() {
   cp -f "$new_splash_file" "$current_splash_file" # Deploy assigned splash screen
 }
 
+# TODO: this function is not yet used
 branch_selector() {
     # Fetch branches from GitHub API excluding "main"
     branches=$(curl -s https://api.github.com/repos/XargonWan/RetroDECK/branches | grep '"name":' | awk -F '"' '$4 != "main" {print $4}')
@@ -577,18 +578,43 @@ branch_selector() {
     # TODO: logging - Creating array of branch names
 
     # Display branches in a Zenity list dialog
-    selected_branch=$(zenity --list --title="Select Branch" --column="Branch" --width=1280 --height=800 "${branch_array[@]}")
+    selected_branch=$(
+      zenity --list \
+        --icon-name=net.retrodeck.retrodeck \
+        --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+        --title "RetroDECK Configurator Cooker Branch - Select Branch" \
+        --column="Branch" --width=1280 --height=800 "${branch_array[@]}"
+    )
     # TODO: logging - Displaying branches in Zenity list dialog
 
     # Display warning message
     if [ $selected_branch ]; then
-        zenity --question --text="Are you sure you want to move to \"$selected_branch\" branch?"
+        zenity --question --icon-name=net.retrodeck.retrodeck --no-wrap \
+          --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+          --title "RetroDECK Configurator Cooker Branch - Switch Branch" \
+          --text="Are you sure you want to move to \"$selected_branch\" branch?"
         # Output selected branch
         echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch
-        zenity --info --text="The data will be now downloaded, please stand by."
-        # Do stuff here
+        # TODO: write the branch into the config file
+        # TODO: check what is the last release for $selected_branch
+        # TODO: form a proper url: $flatpak_file_url
+        configurator_generic_dialog "RetroDECK Online Update" "The update process may take several minutes.\n\nAfter the update is complete, RetroDECK will close. When you run it again you will be using the latest version."
+          (
+          local desired_flatpak_file=$(curl --silent $flatpak_file_url | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/')
+          mkdir -p "$rdhome/RetroDECK_Updates"
+          wget -P "$rdhome/RetroDECK_Updates" $desired_flatpak_file
+          flatpak-spawn --host flatpak remove --noninteractive -y net.retrodeck.retrodeck # Remove current version before installing new one, to avoid duplicates
+          flatpak-spawn --host flatpak install --user --bundle --noninteractive -y "$rdhome/RetroDECK_Updates/RetroDECK-cooker.flatpak"
+          rm -rf "$rdhome/RetroDECK_Updates" # Cleanup old bundles to save space
+          ) |
+          zenity --icon-name=net.retrodeck.retrodeck --progress --no-cancel --pulsate --auto-close \
+          --window-icon="/app/share/icons/hicolor/scalable/apps/net.retrodeck.retrodeck.svg" \
+          --title "RetroDECK Updater" \
+          --text="RetroDECK is updating to the latest \"$selected_branch\" version, please wait."
+          configurator_generic_dialog "RetroDECK Online Update" "The update process is now complete!\n\nPlease restart RetroDECK to keep the fun going."
+          exit 1
     else
-        zenity --warning --text="No branch selected, exiting."
+        configurator_generic_dialog "No branch selected, exiting."
         # TODO: logging
     fi
 }

From ec326284e447973681cc9bfceff5094df6f17451 Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 13:10:20 +0100
Subject: [PATCH 07/12] BRANCH_SELECTOR: added branch variable in the config

---
 emu-configs/defaults/retrodeck/retrodeck.cfg | 1 +
 functions/functions.sh                       | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/emu-configs/defaults/retrodeck/retrodeck.cfg b/emu-configs/defaults/retrodeck/retrodeck.cfg
index da64517f..5cf0a8f2 100644
--- a/emu-configs/defaults/retrodeck/retrodeck.cfg
+++ b/emu-configs/defaults/retrodeck/retrodeck.cfg
@@ -21,6 +21,7 @@ desktop_mode_warning=true
 low_space_warning=true
 update_check=false
 update_repo=RetroDECK
+branch=
 update_ignore=
 cloud_saves=false
 multi_user_mode=false
diff --git a/functions/functions.sh b/functions/functions.sh
index f5ae5368..622c3f0c 100644
--- a/functions/functions.sh
+++ b/functions/functions.sh
@@ -595,7 +595,7 @@ branch_selector() {
           --text="Are you sure you want to move to \"$selected_branch\" branch?"
         # Output selected branch
         echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch
-        # TODO: write the branch into the config file
+        set_setting_value "$rd_conf" "branch" "$selected_branch" "retrodeck" "options"
         # TODO: check what is the last release for $selected_branch
         # TODO: form a proper url: $flatpak_file_url
         configurator_generic_dialog "RetroDECK Online Update" "The update process may take several minutes.\n\nAfter the update is complete, RetroDECK will close. When you run it again you will be using the latest version."

From 6e79e7c88de21be90bc3a4534e9634e9becb9753 Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 13:22:06 +0100
Subject: [PATCH 08/12] BRANCH_SELECTOR: added a line to check the latest
 release for a given branch

---
 functions/functions.sh | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/functions/functions.sh b/functions/functions.sh
index 622c3f0c..074c3cf5 100644
--- a/functions/functions.sh
+++ b/functions/functions.sh
@@ -596,7 +596,10 @@ branch_selector() {
         # Output selected branch
         echo "Selected branch: $selected_branch" # TODO: logging - Outputting selected branch
         set_setting_value "$rd_conf" "branch" "$selected_branch" "retrodeck" "options"
-        # TODO: check what is the last release for $selected_branch
+        branch="feat/sftp"
+        # Get the latest release for the specified branch
+        latest_release=$(curl -s "https://api.github.com/repos/XargonWan/RetroDECK-cooker/releases" | jq ".[] | select(.target_commitish == \"$branch_name\") | .tag_name" | head -n 1)
+        # TODO: this will fail because the builds coming from the PRs are not published yet, we should fix them
         # TODO: form a proper url: $flatpak_file_url
         configurator_generic_dialog "RetroDECK Online Update" "The update process may take several minutes.\n\nAfter the update is complete, RetroDECK will close. When you run it again you will be using the latest version."
           (

From 587a646a72b401e85f7feee79f9195b148b82ae7 Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 14:15:52 +0100
Subject: [PATCH 09/12] MAME: updated configs

---
 emu-configs/mame/mame.ini | 42 +++++++++++++++++++--------------------
 emu-configs/mame/ui.ini   | 42 +++++++++++++++++++--------------------
 2 files changed, 42 insertions(+), 42 deletions(-)

diff --git a/emu-configs/mame/mame.ini b/emu-configs/mame/mame.ini
index 99812b94..f47c2062 100644
--- a/emu-configs/mame/mame.ini
+++ b/emu-configs/mame/mame.ini
@@ -7,31 +7,31 @@ writeconfig               0
 #
 # CORE SEARCH PATH OPTIONS
 #
-homepath                  /var/config/mame
-rompath                   RETRODECKROMSDIR
-hashpath                  /app/share/mame/hash
-samplepath                /app/share/mame/samples
-artpath                   RETRODECKHOMEDIR/downloaded_media/arcade/screenshots/
-ctrlrpath                 /app/share/mame/ctrlr
-inipath                   /var/config/mame
-fontpath                  /app/bin/
-cheatpath                 /app/share/mame/cheat
-crosshairpath             /app/share/mame/crosshair
-pluginspath               /app/share/mame/plugins
-languagepath              /app/share/mame/language
-swpath                    /app/share/mame/software
+homepath                  /var/data/mame/plugin-data
+rompath                   RETRODECKROMSDIR/mame/;RETRODECKROMSDIR/arcade/;RETRODECKROMSDIR/bbcmicro/
+hashpath                  /var/data/mame/hash
+samplepath                /var/data/mame/assets/samples
+artpath                   /var/data/mame/assets/artwork
+ctrlrpath                 /var/config/ctrlr
+inipath                   /var/config/mame/ini
+fontpath                  /var/data/mame/assets/fonts
+cheatpath                 /var/data/mame/cheat
+crosshairpath             /var/data/mame/assets/crosshair
+pluginspath               /var/data/mame/plugins
+languagepath              /var/data/mame/assets/language
+swpath                    /var/data/mame/assets/software
 
 #
 # CORE OUTPUT DIRECTORY OPTIONS
 #
 cfg_directory             /var/config/mame/cfg
-nvram_directory           /var/config/mame/nvram
+nvram_directory           RETRODECKSAVESDIR/mame-sa/nvram
 input_directory           /var/config/mame/inp
-state_directory           RETRODECKSAVESDIR/mame-sa/states
-snapshot_directory        RETRODECKHOMEDIR/screenshots
-diff_directory            /var/config/mame/diff
-comment_directory         /var/config/mame/comments
-share_directory           /var/config/mame/share
+state_directory           RETRODECKSTATESDIR/mame-sa
+snapshot_directory        RETRODECKHOMEDIR/screenshots/mame-sa
+diff_directory            RETRODECKSAVESDIR/mame-sa/diff
+comment_directory         /var/data/mame/assets/comments
+share_directory           /var/data/mame/assets/share
 
 #
 # CORE STATE/PLAYBACK OPTIONS
@@ -234,7 +234,7 @@ output                    auto
 keyboardprovider          auto
 mouseprovider             auto
 lightgunprovider          auto
-joystickprovider          auto
+joystickprovider          sdljoy
 
 #
 # OSD DEBUGGING OPTIONS
@@ -353,7 +353,7 @@ networkprovider           auto
 #
 # BGFX POST-PROCESSING OPTIONS
 #
-bgfx_path                 bgfx
+bgfx_path                 /app/share/mame/bgfx
 bgfx_backend              auto
 bgfx_debug                0
 bgfx_screen_chains        
diff --git a/emu-configs/mame/ui.ini b/emu-configs/mame/ui.ini
index 5955d68a..d616b1a4 100644
--- a/emu-configs/mame/ui.ini
+++ b/emu-configs/mame/ui.ini
@@ -1,26 +1,26 @@
 #
 # UI SEARCH PATH OPTIONS
 #
-historypath               history;dats;.
-categorypath              folders
-cabinets_directory        cabinets;cabdevs
-cpanels_directory         cpanel
-pcbs_directory            pcb
-flyers_directory          flyers
-titles_directory          titles
-ends_directory            ends
-marquees_directory        marquees;RETRODECKHOMEDIR/downloaded_media/arcade/marquees
-artwork_preview_directory "artwork preview;artpreview"
-bosses_directory          bosses
-logos_directory           logo
-scores_directory          scores
-versus_directory          versus
-gameover_directory        gameover
-howto_directory           howto
-select_directory          select
-icons_directory           icons
-covers_directory          covers;RETRODECKHOMEDIR/downloaded_media/arcade/covers
-ui_path                   ui
+historypath               /var/data/mame/dats
+categorypath              /var/data/mame/folders
+cabinets_directory        /var/data/mame/assets/cabinets
+cpanels_directory         /var/data/mame/assets/cpanel
+pcbs_directory            /var/data/mame/assets/pcb
+flyers_directory          /var/data/mame/assets/flyers
+titles_directory          /var/data/mame/assets/titles
+ends_directory            /var/data/mame/assets/ends
+marquees_directory        /var/data/mame/assets/marquees
+artwork_preview_directory /var/data/mame/assets/artwork-preview
+bosses_directory          /var/data/mame/assets/bosses
+logos_directory           /var/data/mame/assets/logo
+scores_directory          /var/data/mame/assets/scores
+versus_directory          /var/data/mame/assets/versus
+gameover_directory        /var/data/mame/assets/gameover
+howto_directory           /var/data/mame/assets/howto
+select_directory          /var/data/mame/assets/select
+icons_directory           /var/data/mame/assets/icons
+covers_directory          /var/data/mame/assets/covers
+ui_path                   /var/data/mame/assets/ui
 
 #
 # UI MISC OPTIONS
@@ -62,7 +62,7 @@ remember_last             0
 last_used_filter          Available
 system_right_panel        image
 software_right_panel      image
-system_right_image        cover
+system_right_image        snap
 software_right_image      snap
 enlarge_snaps             1
 forced4x3                 1

From 62154e8c153bb2d04616134688d7fdf842459c63 Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 14:22:10 +0100
Subject: [PATCH 10/12] MAME: updated prepare_component

---
 functions/prepare_component.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh
index 206fc3dc..74cfc55a 100644
--- a/functions/prepare_component.sh
+++ b/functions/prepare_component.sh
@@ -716,7 +716,7 @@ prepare_component() {
     sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/*.ini"
     sed -i 's#RETRODECKHOMESDIR#'$rdhome'#g' "/var/config/mame/*.ini"
     sed -i 's#RETRODECKSAVESDIR#'$rdhome'#g' "/var/config/mame/*.ini"
-
+    sed -i 's#RETRODECKSTATESDIR#'$rdhome'#g' "/var/config/mame/*.ini"
   fi
 
   if [[ "$component" =~ ^(gzdoom|GZDOOM|all)$ ]]; then

From d755f7ca30dd4fe778ee2f09496abee1ee7bb3f9 Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Tue, 20 Feb 2024 20:29:57 +0100
Subject: [PATCH 11/12] GENERAL: fixed /**" pathing with /"**

---
 functions/prepare_component.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/functions/prepare_component.sh b/functions/prepare_component.sh
index 74cfc55a..5a095536 100644
--- a/functions/prepare_component.sh
+++ b/functions/prepare_component.sh
@@ -712,7 +712,7 @@ prepare_component() {
     mkdir -p $saves_folder/mame-sa
     mkdir -p "/var/config/mame"
     dir_prep "$saves_folder/mame-sa/hiscore" "/var/config/mame/hiscore"
-    cp -fvr "$emuconfigs/mame/**" "/var/config/mame"
+    cp -fvr "$emuconfigs/mame/"** "/var/config/mame"
     sed -i 's#RETRODECKROMSDIR#'$roms_folder'#g' "/var/config/mame/*.ini"
     sed -i 's#RETRODECKHOMESDIR#'$rdhome'#g' "/var/config/mame/*.ini"
     sed -i 's#RETRODECKSAVESDIR#'$rdhome'#g' "/var/config/mame/*.ini"

From 1efe0aa0d9d504da4d56d238d28ee65bf51faf08 Mon Sep 17 00:00:00 2001
From: XargonWan <XargonWan@gmail.com>
Date: Wed, 21 Feb 2024 10:50:28 +0100
Subject: [PATCH 12/12] WORKFLOW: added calculation for generating a vaild tag
 for automated PR builds [skip ci]

---
 .../workflows/cooker-selfhosted-persistent.yml    | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/.github/workflows/cooker-selfhosted-persistent.yml b/.github/workflows/cooker-selfhosted-persistent.yml
index dced323f..b2403330 100644
--- a/.github/workflows/cooker-selfhosted-persistent.yml
+++ b/.github/workflows/cooker-selfhosted-persistent.yml
@@ -113,16 +113,27 @@ jobs:
       # if it's a feature branch it will not marked as "latest" cooker version
       - name: "Set makeLatest (cooker only)"
         run: |
-          if [[ "$BRANCH_NAME" == 'feat/'* ]]; then
+          if [[ "$BRANCH_NAME" == 'feat/'* || "$BRANCH_NAME" == 'ref/'* ]]; then
             echo "MAKE_LATEST=false" >> $GITHUB_ENV
           else
             echo "MAKE_LATEST=true" >> $GITHUB_ENV
           fi
 
+      # if the branch is coming from a PR the tag should be manually built
+      - name: "Generate version tag"
+        run: |
+          if [[ "$BRANCH_NAME" == 'ref/'* ]]; then
+            pr_number=$(echo ${{env.BRANCH_NAME}} | awk -F'/' '{print $3}')
+            original_branch=$(git ls-remote --heads origin "refs/pull/$pr_number/head" | cut -d'/' -f3)
+            echo "TAG=PR-$pr_number-$original_branch-${{ env.buildid }}" >> $GITHUB_ENV
+          else
+            echo "TAG=${{env.BRANCH_NAME}}-${{ env.buildid }}" >> $GITHUB_ENV
+          fi
+
       - name: Publish the flatpak in a new cooker release
         uses: ncipollo/release-action@v1
         with:
-          tag: "${{env.BRANCH_NAME}}-${{ env.buildid }}"
+          tag: "${{env.TAG}}"
           body: |
             # Release Notes (Cooker)
             This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.