From b40eea5afaca9e873ece02e54df652d802af1cda Mon Sep 17 00:00:00 2001 From: Rick <1450685+LinuxSuRen@users.noreply.github.com> Date: Mon, 20 May 2024 09:03:28 +0800 Subject: [PATCH] fix: some issues on darwin (#440) --- .github/workflows/build.yaml | 5 +- .gitignore | 2 + console/atest-desktop/api-testing.png | Bin 0 -> 11048 bytes console/atest-desktop/forge.config.js | 7 ++- console/atest-desktop/index.html | 3 +- console/atest-desktop/main.js | 79 +++++++++++++++++++++--- console/atest-desktop/package-lock.json | 9 +++ console/atest-desktop/package.json | 3 +- tools/make/common.mk | 1 + tools/make/desktop.mk | 15 +++++ tools/make/run.mk | 2 +- tools/make/ui.mk | 3 +- 12 files changed, 109 insertions(+), 20 deletions(-) create mode 100644 console/atest-desktop/api-testing.png create mode 100644 tools/make/desktop.mk diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 14107f7..5554b35 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -39,8 +39,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - make build - make copy + make build copy sudo atest service install sudo atest service restart sudo atest service status @@ -118,7 +117,7 @@ jobs: cache-dependency-path: console/atest-ui/package-lock.json - name: Build run: | - make build-embed-ui + make build-embed-ui copy sudo atest service install sudo atest service restart - name: Test diff --git a/.gitignore b/.gitignore index 7685140..c52d8e3 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ oryxBuildBinary /helm/api-testing/charts/ console/atest-desktop/out console/atest-desktop/node_modules +console/atest-desktop/atest +console/atest-desktop/atest.exe diff --git a/console/atest-desktop/api-testing.png b/console/atest-desktop/api-testing.png new file mode 100644 index 0000000000000000000000000000000000000000..838c1e1a0becb0135052582e8d1acac073a68036 GIT binary patch literal 11048 zcmbt)1yq#pw=PJCG?LPS(t^^Bz)*r9DV@?SHNXJUASKdB2#9odr*um903zKr^nLlA zb^hy~b?UBlVOTI9Z|v{gdq4Ym_I#o56lHKQ$uW_TkZ|N=Au32n$T0B3i-8WV7(Zif z1#bc@B_-de6%;Sv@u0OVv6>P7Lo0EP5H|}H9K1kb&z)DONQW#loX{rahPF7 zC9$^4%eoV+v_eAy< zktGWHxGOl&E$U5w5IQm^7{om&!JtDGgJAa#6f$y!X+a}PJP`;F(lxEc^;=35tF{lH zl;|SM>Wv8O@rUiSU52hY=~(+&4h0T>h?73^{!_nlM6v$0OMt#Qjd3m?X1u>qnyO znD=~#*cL+dk4ld^GJW?0s}Wiu?*lQ!LXlQV+Q*o7$M1K)s>Ql|TiHkKX3x&cY-^N| z?zkMX-EOK#UY^T&R1`=>ermIYuhbVXd$z9OzC2P(z?q4@<_B-{-8mq zMQqRWVnOc%srl93_5~CHoi}wg6T3>9A+1Qi81Q666~})KfiMhz)q4%;Y-OaQLl-3= zcy$mO65^`_fndYv=#1fn1OzDQAt7W4$Uj5=(}n+G&VReef0*+nN<}kV5T`nsc}En%7RG^0oY0?PYn-DR*8h z@7SOz;px=Y&9=?Vperi!I=EHH9RGa_|7(RuO8StWf0|6sV5#YSxPF#OMDc>b3*1)L z=%?5e=*`|D-q(;-BRnKh@8RwZ<=yEv!FNxI-zn2R#QZZ{xd`8LC7T|`q4G;182SC^ zg-$)$8V#~BT-C(?!Z=N%`syZX2I~DmM^jU?GzLfQC|moPLEpnKcikL;Niho}B~grm zXr8TebJ3{~?T%M4Dne9bvD?_JI9r-Gd2JoR**hQTud)v&B8?Sb$0UAN>0O>!!z%+b zY{Kp;-9t~&o69^C)q^_6CbZ{nXJUn2%L(SZzf%%$*?;eDT}7N-Q82L=o8{o6ENNz6 z#}`cO+RvngU3v%z&Grz-v%a)3k0Xy8kc`2g1Yb74!B=& ze{^DYj-lGfw|BMe+dN(H`B%}@e2QuM>*M~`=ZcrQH0?1kZncm+o5&;R zqP4H@aRuFtl)cGVweI+Y<5pTmX=&-}0*&HC9(tnpL)g*-Imo3`@O_&+Y|V;2!Tp}+ z=*`6w6TOE~P)A=ek@n3fmAWR+tIu{F3&H|+i?I&oWV9ghAc|ORzf5jkIi*x|Rey8H zecY`iZ1|86#USDL*z?-d7kfJ%JBcJd*ZZI1*`bbxgrmE%g3Y(T~TwYK4d=t(H+;A<7VueVd$-f}uq@ZAhDB`p& z7Nv5RH_bmr`>G`Rq5Cn40VxZsb(vj3tqSIT9A^D-Q7$}boE0S+W!7E#;GV-}NmYV%L_-$pdw>Wdo32sg@$N6)_prtl@ zcCIezdB??ZVagjY{>nVFmP7k{4Kc`gQJ0wwC7Z+>=)@=G|l;J(E6s_#n z*Zr|!#&BzOaq;KXG)$ybdnsDYr4^o+yN7yd$12u)XBSwMldnj4c{QMnZ*DSD5jShO zxqnV6z?`@Fz+0E+)=*5d3Nu&ex(mnX+~TPuFA=7%P>*coBWKBzxkW2`#?>JcSB6&y zRpJ@=2fKJH-qLtGRypO^?O()Ku;iW_W9Hhea6b-$QKogY*Q|Z0;uG$VYd7+bl&_q z@0BLp#%HHBmrplW_8S){(}y3LktH3jUQcM>y?cYxZ;g*)FlJ@FhLCBjZB4&yq=$J? z@UdnY&>VIMCZTUx&jbUC3ICZ9hO-Pty+B&s1}qqY*@q_6?)kQH|y)vN)i&1L|!deUSO4@6cdMe zDzS-?scERV*TlD&yV}Hm1~YRc&@t%G+k{+{@B~*>+;A0*B_4X4dbf1m-=!_ZDf_&} z)ImMYs{I*CCS_5>D(%BoZ*8|-;yWp?!<^a!|Ys_^?{?nrXCq; zm+ikrlVe|1hK~<}yD~FAQbec^a@~hVmjI8S(`%nYlfxm!GpOg!;EmH7pKmyIDN*fQ z=+)I*XreUkve+=3Fa5;R7pb)~0$xIMnR+^>e>KI5Vn3Q>>y~sZc(PR)VsC9vVC^vA zPVPXA;RV}^O~xs8EXCx@CziLRAIk+&EOE=*_MK?AKb8mK z`}>8_uGkxlw|Fvkp%11?D#raXSYvbDR$~haME+U0);kMdOKPP{qdUqvqs+C^b~~~; z)mEy+2f?)dhoW9)W(&>x_%H517O%>FMW|qk)L&T?QfX+!LtT;)VKv(|q*;}fK|~H_k-S+?GhDgLXj0>@gzL*M72d zGV}0bHN?W4qo{H-yKLp|%XO?;;Lgs+JxvtnEd^ig?cj5pA;o9t&6)xNYluUKxLlVd z?*$56TwZO<_fdOWINK@mYbh{ERbAbP)47QT0d}UIi2EEmY-93n^c+DFE2`=r97MKn zp}Xy;y0c{mXqNaVM$4*bf6XS8*SB~_))*f4G=a5L?*nrnHI)rM(T|1nsV!X^{&f9d zAvbC#Mv9Q5kIWiH?>P?E2M&JEa=bBye`^eH_{Hy*r8r(+p|9K$>&G%2=+V)yb?uq* zArH;JY&}P)hwWX-kM>sN=6^Q8?NnVsDO0LFYk`5dHQZx6Bn{;2B>rBXoK14FJGo2O z*z%?+NmXxFGt1;5-aW?r%FWB`o|@}?+fB*$gIT-Uc~nm5Ar6sPp{izaYt?q({EUa1 zvQ`)xjlQy{(7trlUuOkyBQCqzPe00c>W!yxHwO;Q&OFT(sIMXwv%A_hiq{@Vs23E_ z@bZ>BDP3;4sM9hYX+?5n0$T|>kH37woNH`r8=4foVvh35TgPu@#cI!iN|gx})^vf% z%NU#ARD`!=`$$Gc$dv_5VPejc9#C{V&RAD;@o#9bvranMEm}PF3u^&kSvKo z37=+qX{Rqxp-TlTSw&AT_;}svpiPE(L*%kix`P^tw`d!chKA9V`w-iJElI)GcIh+4 z@ZRq(a;g*9YCqQS75yHgqa>H*lhazS28^dq^@Z^v)I#nT#61ISlCx{w)0L8bD=gxy z`&CC?Vkg`E8I%A8&d08XOs>6k=2LS@-kt|nReAeBTz0o`7_YwNe))`*{71D8`}&R^ z;{g#S^2a*BrI5iZPc4XX;uL!H16N)Bl!+x@+I5I+vUdDy~Q>^=5d*Q-gZwq6O%ujZYxZ3w6iIhoh{*7~Ucjv{#-qPyWbN zeq+>QDCU2o+bkNH$UCcia;f9?C$m|92n7;0d!fC&y;cQzTZ>Ih~CUQG1Y%K zi0e3pFNCH^Uz=qlCh4pjfWS zpy-ZqkBR0q_(i-DF=d5wCK#A;>Cl@Unu1CkR|Q7U8&0~-YG_Q-@#@ci zfs`2PT$k^2l$LYewj=@JX4n%TpE()V_o?6Vf{eeExaBPbfRV0c!m(6>3iQ;}AO^z| zX=Az##dmRqCd7+2T2&itfWDU=x)SWv?wK@HA+@_x_|mf;F$+T*;FD4rpg|ZWXuPg+&mZmx%fA3eg%c-;%;Qp?-YZf_m+R%^Y)OCnb*Om1 zBI8}@_yYozrB)`Q2hFNku@ahiG%?$R*4FY0>3>;0ZvMzu)%vs~E-`^SH>yk5@-rdr zeES>*WJl$J8*i`oCSma+P5GF)K%pdvn3v|mpES zWuTq{$%B8623tIDCR9%plNf% zQu2k4p;`9ia-rVi8;nNlzPO+s`b_`egsYIJQ%eIpsi>@k$x7*~rikh>W*VC3iO^aXo_t@S3m?-x3=4i#P0 zfnU1qdDtP)al2yf`YUhw?I@1mv4jK=7R72tZt z+3#;MU~wAcqL{i|iVNVqdnkoKEQOF~jPM@G*V;y_!aOQmcy0Ur)%sMhz)?^|zcHO| z)VppxXhZQDJcBzpIkg((gp^#RtN*y?8rSjn#;kTlNPHj(VaJtj=A9NxYnq>4232vah7s`Opcfb8UROWK zYdHTrYOR*9zvzkRe~+X~P__3y4CUa>2Mo9Gbt%gUadKsLb0(wPcpK~1XAeVSvZ($l z+80mq0x9v2!7mzO8NB0Vg$!6x(RkJg9vE&Ig8Mz&TmR>N`_HKH#ZtIDgE(w#i=Y8W z8}l=SdxM=~9d75NEFacmE9k-L&ql}S_y$PEWlrtS%>~PJ-&y|dBysxbnO_w#t~S)m z2x>!bo!X((enVA_c!TSnu;6V6+!ydo8}onip0{TWbLU#|+F>Z%vbnUp{LknijiBqv z>rcT5Q31CsTtF-S*(W*9v4)I!Y8z6r)Ie&!e$C=Z;P%5rPGyWx#% zG1{Ia6ZqKcGS|(^q@(yT5$Sti?MbTyD0~Z`$;tI!^)&z0N&Hva^MCJy{`c+3e=YJK zTBZMGGxa}jd_U)ZZovL)&cAnL|8?QN-uS+~`X4O$r{5}4VMdzBm!uH1vt#qY+?<}3 z6)TEbq&-U}>PuW);Po|37yKbmUi4 z!v|XAGZ`O_`uh65BqRi2nKuGx!O>yk%8ZhJ)RdiBp@Z7=wxG*e9nG(dAU7by&wRXiZwGc z<0p|Za%pY^|E3Iouc3i?b+$`*dA3^+<2w9}Pf1omf#~Syhzuc3jX(+r2tcjCyawm@ zR8&+yi&3iYRtf^a5W7C`ci3MPDGC%rS;Br`z!39DPEJk&3awof?Vzx4e44`VD3M!O z_yJB~3BS6!!us{=7Xu9fk6IXC^x_X;6Sbsjjv}%5&FTAyyLxl@Hz=HxnD`MEDLZ%K zaJlQQHYm*KqDV&DlSK>^2vbv22^*V2aVq)9$jJM@z9c2(MGyCA2{P>LEi@$ZJJL-S zYIO|JMnLzQ&fmRzXZSIFduyTqx|yATPfTq3Za2TM5Td3=^Z*6L5g1)n)7{FaTw}M; z-V;slc=Sik72T5iQ}f-eXUv5#X5fQIj~;FO&c;$q;Wrwwy_v!@Jay3i`KYhAw{5!2 zBswW+CU>gFeu>&?eMm}H7USN_%ge|@LPFCsGi|f8uTQ-< zU*|uTqhxY-d$Z$AtnYQI-gvoHprpqT(`#sAG6t_ND=SMBaw}GxqoAUS$d*q4jk4>D zHqormxZc9@Z+Bl#knji z1+G`GlwYFr@bI+9GOLpFi1K@$*)0FgmiJR*QQsB``}{ee!h9GLxP$Qe=4OJtgYR@z zVPM(?_+lvP{2?ASlO8n{mF>6*;`H>i{WCFZ+QsEq1O;C}eZ626qcTW6tnMfpQc(mP zB|_JK93iCxI2P({nuw1|CGVI5z_OyMBcwz`7Pfb!q@-9fk(2~o5fnM6t?OjXkMeSJTO0P93r=_l z85KK6vt&kdlxQ@yt-R0qEPtZ{M`<>B@K6gwKb>w*IdzleJtAaiU0P~sTl>amKiN}T zUQ8tnEmfBMAQ^<+R%Jc)(&rWib$7Qc60x(hBNK)3yY4SWfH0-y7Fck+k`&B{(zC0pNoc$gPgz)57KcMZ z`wr$$2pAa|*>tK4+tvW?v|b#qN32v(ig*xtp6w`KCf6)_V2zHBIyg9tczS;0wf+2r z%M5;hU$0EiQPOY4LLr&X7l^~v(Mn5IS0a%LqmCeED*by8fN;jXLw_V`y@8*&)Q3o8eAW8=)WC3r$?Y(RK8 zc6NytSZaQLUctkF^WZJS%S%Max6-Wj6EYc}ovwd>0=wR40LuP04QedEW~;2@n$31+ zt2Sn<3VQct(3?ZwopM#?=7yv~GH0fznNls|zJB$imx(0%Fvp=+9}q^$!QwSoX*o7v zEOx(o48z-4b}{GyEfFS~&}Yc@Oa-IaVDbd~2xMSJW8*x0)@x__Rd&CLiOKTr?qDn9 z>hi`$uCu$9RlaooZuCWYd3k%I`!TsLs4J1_KDRU9XLZ%p138)z5}VdRcrA>y0v>Ip1F1gri*bhG%lI5h#$jG<{Hger&!?p+hwm?3XzY568W?0nwItZJVO!Eol}d3mzQ zV!&rT$p(Qy;2Wb^=$3%P;w4I%+rClcr>CATiX|Iym{l9Qdpgxo!qt8t5IT; zSI>Muf5yyi;YPq!@mPbN_w{!>*@3W z0dk%Pr9VH=skZ3_-d=~pKb16JV(#tjv8>bbX#o0{p4Rb%j4UKiHHVIk4LeoPMWR5X z$k5dE7nPy({mI9%zUS4P}6sMTC=E0 z#>|W%p2HwABm|?EybW?#^Kn8$kZyLX0^=|teT|SpKrezAFlku zVP9(UT0xpb$Wd;c<}@TGr(w#^JQq7uOTV zxHyW0gmH5JEI@yMhcC)QHPHiILJ|)B@Ph+~IKI{|jugVsm(o$x3-BXwQW7k2Ti2w; zf-OkUASH%2K+p&X2sCT#sPgmk9Zt8@cjjvFSTzbq`uteVbyQ4D%s8A`u|90W&3_qznhXzh7^2bFr}-JsME`OTX*&c8{_&CRp>@u&n*lN7pI8LhBEKmbZ-IFusL z)6?@B27_fy>NLXy(uCdHak+oJR#qNnW@LN_vU67oi9p?i~B0xA{5euwKlD(MPa$4=kraTH5)TfU@|t0 zlbuS)6{4$~(l@ox?DZ|xw4FS^1m(IwKPJEYS8`_l>se4<+=G;UL@K5V8i5G8&P*z6 zZG8<0@z1ukn`B=+#-NcX<9^zV1una()X(&1=4 z@avmuJnCbu^*m=sNylDVPxpy5>5hCd5I6$ZD6`%oi26NlE>7o-ci2xjf3&Ru(lKdO zxAN%|QlUYM{-!mc1h1U_Dx}U6foP~2pPDk6E;T}&j47RZH$bJN(2R|ZW1AVCJqr*T z4Cm+PhXWi2q{Y~n?rTg;)ojpveRrv~#_QNvqJd-{th%~7U@@#e{)Hqc0MTE*d{6M; z`B+D306RoeQBfg>4VtHWp@SpdW8)fY@$m_#5o>N+1B5}_%ZHDT&t|$*d~F+-N-zMB zu*5$DROro*zREs>UaTd&f*u&&=QCjbg6>Pn$>cC_Q4`d*-&1c>_@jk-u|WMs*Vqjvn1CrTE5}gLu7qiv2{i!BD0j)mhqOjlKIADA6%6?H;A(=Z*xy0w*Ai%Z(b+&S0 zPA>gNYdBhW@rj8czgJjesl&l<);q`d$|N{E7ZJ6xH3`z1C%$gx7vC9DGSPl>iCMYd4>J zltJ|2QqXNLJP?bNrRk~s9H_4Nq@=+!73TD>UX>|tQv%H#Rd*R39Zd${+0V}pzP5%2 zh&Z?HED9XIgdaCN^gnj+`_+BcnudjkSAS)|tapESEg(}iJI7p1djo1e~ zQ_xn)$SC9Y*~YPfoLp$%8HYjhyy4vb<|ealBXqPdssez9MUl_g*cgv@sfEe8q=va~r6Zp3zWE6CGf`PZVwl+B^*BQ|j$Ynv;Py7J= z`q(VOytco;loTi@_XF>7u1$5;5_wPvZ@oeJ2FeBTdr2Zmo z7$Nu|FQQnlVI?a{R6OD!~n3<{qT5)%G$`30v~e*E~c z{Sz|EOT$(qHqBC`^Sy;|8>-=tj&m;tM?m7DqM^0*^?goNiuk*{>P7P0H=>ydI(c>u{B-QB_FM;~}m#b1NM3hFKx9|5@LeVpC5WLQ|*L7(Fg-i9(g zJDX|RAAfLi0x>j%(=1W=`1l|$FWbk)R82a#@0(SZglWnD+rxnWYCZjb^`id0*(R%c bOY_*kC-hN_p9Oee5=l-<5mGE+==XmBWGcbA literal 0 HcmV?d00001 diff --git a/console/atest-desktop/forge.config.js b/console/atest-desktop/forge.config.js index 0796013..a59f301 100644 --- a/console/atest-desktop/forge.config.js +++ b/console/atest-desktop/forge.config.js @@ -1,10 +1,11 @@ const { FusesPlugin } = require('@electron-forge/plugin-fuses'); const { FuseV1Options, FuseVersion } = require('@electron/fuses'); +const path = require('node:path'); module.exports = { packagerConfig: { - icon: 'api-testing.ico', - asar: true, + icon: path.join(__dirname, 'api-testing'), + asar: true }, rebuildConfig: {}, makers: [ @@ -32,7 +33,7 @@ module.exports = { name: '@electron-forge/maker-dmg', config: { format: 'ULFO', - icon: 'api-testing.ico' + icon: path.join(__dirname, 'api-testing.png') } }, { diff --git a/console/atest-desktop/index.html b/console/atest-desktop/index.html index 81bd1ca..fa45cd7 100644 --- a/console/atest-desktop/index.html +++ b/console/atest-desktop/index.html @@ -17,6 +17,7 @@ Log output + diff --git a/console/atest-desktop/main.js b/console/atest-desktop/main.js index abe8e18..b7d6641 100644 --- a/console/atest-desktop/main.js +++ b/console/atest-desktop/main.js @@ -2,10 +2,20 @@ // Modules to control application life and create native browser window const { app, BrowserWindow, Menu, MenuItem } = require('electron') +const log = require('electron-log/main'); const path = require('node:path') +const fs = require('node:fs') const server = require('./api') const spawn = require("child_process").spawn; +const homedir = require('os').homedir(); +const atestHome = path.join(homedir, ".config", 'atest') +// setup log output +log.initialize(); +log.transports.file.level = 'info'; +log.transports.file.resolvePathFn = () => path.join(atestHome, 'log.log'); + +app.dock.setIcon(path.join(__dirname, "api-testing.png")) const createWindow = () => { // Create the browser window. const mainWindow = new BrowserWindow({ @@ -20,12 +30,17 @@ const createWindow = () => { icon: path.join(__dirname, '/api-testing.ico'), }) - server.control(() => { + if (!isNaN(serverProcess.pid)) { + // server process started by app mainWindow.loadURL(server.getHomePage()) - }, () => { - // and load the index.html of the app. - mainWindow.loadFile('index.html') - }) + } else { + server.control(() => { + mainWindow.loadURL(server.getHomePage()) + }, () => { + // and load the index.html of the app. + mainWindow.loadFile('index.html') + }) + } } const menu = new Menu() @@ -71,14 +86,55 @@ let serverProcess; // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.whenReady().then(() => { - const homedir = require('os').homedir(); + const homeData = path.join(atestHome, 'data') + const homeBin = path.join(atestHome, 'bin') - serverProcess = spawn("atest", [ + fs.mkdirSync(homeData, { + recursive: true + }) + fs.mkdirSync(homeBin, { + recursive: true + }) + + // try to find the atest file first + const serverFile = process.platform === "win32" ? "atest.exe" : "atest" + const atestFromHome = path.join(homeBin, serverFile) + const atestFromPkg = path.join(__dirname, serverFile) + + if (!fs.existsSync(atestFromHome)) { + log.info('cannot find from %s', atestFromHome) + + const data = fs.readFileSync(atestFromPkg) + log.info('start to write file with length %d', data.length) + + try { + fs.writeFileSync(atestFromHome, data); + } + catch (e) { + log.error('Error Code: %s', e.code); + } + } + fs.chmodSync(atestFromHome, 0o755); + + serverProcess = spawn(atestFromHome, [ "server", "--http-port", server.getPort(), - // TODO below setting is not working - "--local-storage", path.join(homedir, ".atest", "data", "*.yaml") + "--local-storage", path.join(homeData, "*.yaml") ]); + serverProcess.stdout.on('data', (data) => { + log.info(data.toString()) + if (data.toString().indexOf('Server is running') != -1) { + BrowserWindow.getFocusedWindow().loadURL(server.getHomePage()) + } + }); + serverProcess.stderr.on('data', (data) => { + log.error(data.toString()) + }); + serverProcess.on('close', (code) => { + log.log(`child process exited with code ${code}`); + }); + log.info('start atest server as pid:', serverProcess.pid) + log.info(serverProcess.spawnargs) createWindow() @@ -101,6 +157,11 @@ app.on('window-all-closed', () => { } } }) +app.on('before-quit', () => { + if (serverProcess) { + serverProcess.kill(); + } +}) // In this file you can include the rest of your app's specific main process // code. You can also put them in separate files and require them here. \ No newline at end of file diff --git a/console/atest-desktop/package-lock.json b/console/atest-desktop/package-lock.json index e17a0b0..e87f612 100644 --- a/console/atest-desktop/package-lock.json +++ b/console/atest-desktop/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "child_process": "^1.0.2", + "electron-log": "^5.1.4", "electron-squirrel-startup": "^1.0.1" }, "devDependencies": { @@ -2807,6 +2808,14 @@ "node": ">=10" } }, + "node_modules/electron-log": { + "version": "5.1.4", + "resolved": "https://registry.npmmirror.com/electron-log/-/electron-log-5.1.4.tgz", + "integrity": "sha512-P0RSXnwT3z+e89Z5uAcZDeN85/QjIgv764a93kqCi+wh2Jm22CCbc3AGDt4S8rsxAHWHB4Q0PGsQl3fw1AN0kQ==", + "engines": { + "node": ">= 14" + } + }, "node_modules/electron-squirrel-startup": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/electron-squirrel-startup/-/electron-squirrel-startup-1.0.1.tgz", diff --git a/console/atest-desktop/package.json b/console/atest-desktop/package.json index e74b243..c0998fd 100644 --- a/console/atest-desktop/package.json +++ b/console/atest-desktop/package.json @@ -29,11 +29,12 @@ }, "dependencies": { "child_process": "^1.0.2", + "electron-log": "^5.1.4", "electron-squirrel-startup": "^1.0.1" }, "build": { "extraResources": [ - "./assets/atest.exe" + "./assets/*" ] }, "optionalDependencies": { diff --git a/tools/make/common.mk b/tools/make/common.mk index 4a7e953..c9a19e3 100644 --- a/tools/make/common.mk +++ b/tools/make/common.mk @@ -75,6 +75,7 @@ include tools/make/ui.mk include tools/make/run.mk include tools/make/proto.mk include tools/make/test.mk +include tools/make/desktop.mk # Log the running target # \033[0;32m -> green diff --git a/tools/make/desktop.mk b/tools/make/desktop.mk new file mode 100644 index 0000000..9f6ef31 --- /dev/null +++ b/tools/make/desktop.mk @@ -0,0 +1,15 @@ +# Building docs makefile defined. +# +# All make targets related to docs are defined in this file. + +##@ Desktop + +.PHONY: desktop-start +desktop-start: ## Start Electron Desktop +desktop-start: + cd console/atest-desktop && npm run start + +desktop-package: ## Package Electron Desktop +desktop-package: build.embed.ui + cp ${OUTPUT_DIR}/${BINARY} console/atest-desktop + cd console/atest-desktop && npm run package diff --git a/tools/make/run.mk b/tools/make/run.mk index be31bd4..c24c60a 100644 --- a/tools/make/run.mk +++ b/tools/make/run.mk @@ -21,7 +21,7 @@ run-console: .PHONY: copy copy: ## Copy the binary to /usr/local/bin copy: - sudo cp ${OUTPUT_DIR}/$(GOOS)/$(GOARCH)/atest /usr/local/bin/ + sudo cp $(OUTPUT_DIR)/$(OS)/$(ARCH)/${BINARY} /usr/local/bin/ .PHONY: copy-restart copy-restart: ## Copy the binary to /usr/local/bin and restart the service diff --git a/tools/make/ui.mk b/tools/make/ui.mk index ec7536c..91f6285 100644 --- a/tools/make/ui.mk +++ b/tools/make/ui.mk @@ -16,8 +16,7 @@ build.ui: .PHONY: build.embed.ui build.embed.ui: embed.ui - GOOS=${GOOS} go build -a -ldflags "${BUILD_FLAGS}" -o ${OUTPUT_DIR}/embedui/${BINARY} ${ROOT_PACKAGE}/main.go - cp ${OUTPUT_DIR}/embedui/${BINARY} /usr/local/bin/ + GOOS=${GOOS} go build -a -ldflags "${BUILD_FLAGS}" -o $(OUTPUT_DIR)/$(OS)/$(ARCH)/${BINARY} ${ROOT_PACKAGE}/main.go make clean.embed.ui .PHONY: embed.ui