From 0eded90e6b2796c5e46ebf9d1cd1b47528d5e95a Mon Sep 17 00:00:00 2001 From: Janusz Szczypka Date: Wed, 15 Jul 2026 08:38:14 +0000 Subject: [PATCH] Add WinSW automatic update manifest --- .gitignore | 4 ++- README.md | 12 ++++--- daemon/install.cmd | 10 ++++++ daemon/smartb2bsync-enova.xml | 31 ++++++++++++++++++ publish.ps1 | 28 +++++++++------- release/SmartB2B.Enova.Contracts.dll | Bin 18944 -> 19456 bytes release/SmartB2B.Enova.Contracts.pdb | Bin 13844 -> 13880 bytes release/SmartB2B.Enova.Service.dll | Bin 57344 -> 57856 bytes release/SmartB2B.Enova.Service.exe | Bin 151552 -> 152064 bytes release/SmartB2B.Enova.Service.pdb | Bin 24492 -> 24528 bytes release/adapters/SmartB2B.Enova.Adapter.dll | Bin 13312 -> 13312 bytes .../config/{enova.json => enova.json.sample} | 0 release/daemon/install.cmd | 10 ++++++ release/daemon/smartb2bsync-enova.xml | 31 ++++++++++++++++++ .../SmartB2B.Enova.Service.csproj | 2 +- .../config/{enova.json => enova.json.sample} | 0 16 files changed, 111 insertions(+), 17 deletions(-) rename release/config/{enova.json => enova.json.sample} (100%) rename src/SmartB2B.Enova.Service/config/{enova.json => enova.json.sample} (100%) diff --git a/.gitignore b/.gitignore index c017382..6911a0c 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,7 @@ NuGet/ *.user *.suo -# Lokalna konfiguracja wdrożeniowa; wzorcowa konfiguracja znajduje się w źródłach. +# Lokalne konfiguracje wdrożeniowe; repozytorium zawiera wyłącznie wzorzec. +src/SmartB2B.Enova.Service/config/enova.json +release/config/enova.json release/config/enova.local.json diff --git a/README.md b/README.md index cf3eb68..aba3bfc 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Dedykowana usługa Windows zastępująca proces Node na stanowiskach z enova365. ## Konfiguracja -Plik `config/enova.json` zawiera portal WAMP, ścieżkę instalacji, alias bazy, operatora, definicję dokumentu, magazyn domyślny i tryb zapisu. +Plik `config/enova.json` zawiera portal WAMP, ścieżkę instalacji, alias bazy, operatora, definicję dokumentu, magazyn domyślny i tryb zapisu. Repozytorium oraz paczka zawierają tylko `config/enova.json.sample`. Skrypt instalacyjny kopiuje wzorzec do `config/enova.json` wyłącznie wtedy, gdy lokalna konfiguracja jeszcze nie istnieje. Sekrety nie są przechowywane w JSON-ie. Konto usługi musi widzieć dwie zmienne środowiskowe maszyny: @@ -38,7 +38,7 @@ Ostrzeżenie `NU1603` dotyczące `Soneta.Generator` jest takie samo jak w dział Kontrola konfiguracji i dynamicznego ładowania, bez zapisu do bazy: ```powershell -.\src\SmartB2B.Enova.Service\bin\Debug\net8.0\SmartB2B.Enova.Service.exe --check-config +.\src\SmartB2B.Enova.Service\bin\Debug\net8.0\SmartB2B.Enova.Service.exe --config .\src\SmartB2B.Enova.Service\bin\Debug\net8.0\config\enova.json.sample --check-config ``` ## Publikacja i instalacja @@ -47,9 +47,9 @@ Kontrola konfiguracji i dynamicznego ładowania, bez zapisu do bazy: .\publish.ps1 ``` -Skrypt odtwarza katalog `release` z hostem, adapterem, konfiguracją i WinSW. Istniejąca konfiguracja `release/config/enova.json` jest zachowywana. Repozytorium zawiera również gotowy, skompilowany katalog `release`, więc na komputerze produkcyjnym nie trzeba instalować SDK. Przed instalacją: +Skrypt odtwarza katalog `release` z hostem, adapterem, wzorcem konfiguracji i WinSW. Repozytorium zawiera również gotowy, skompilowany katalog `release`, więc na komputerze produkcyjnym nie trzeba instalować SDK. Przed instalacją: -1. Skopiuj katalog `release` na komputer produkcyjny i uzupełnij `release/config/enova.json`. +1. Skopiuj katalog `release` na komputer produkcyjny. Możesz skopiować `release/config/enova.json.sample` do `release/config/enova.json` i uzupełnić go przed instalacją; jeżeli tego nie zrobisz, `install.cmd` utworzy plik automatycznie. 2. Ustaw sekrety maszyny. 3. Zatrzymaj starą usługę Node dla tego samego portalu WAMP. 4. Skonfiguruj usługę do pracy pod dedykowanym kontem Windows, które potrafi uruchomić Enovę, widzi jej bazę i licencję. @@ -66,3 +66,7 @@ Wycofanie polega na uruchomieniu `daemon/uninstall.cmd` i ponownym uruchomieniu - Diagnostyka: `eu.smartb2b.sync.get_version`, `get_info`, `get_log`, `get_error_log`. Kod produkcyjny, testy oraz gotowa wersja instalacyjna znajdują się w tym repozytorium. + +## Automatyczne aktualizacje + +Przy starcie WinSW pobiera pliki aplikacji z `https://demo.smartb2b.eu/files/smartb2b-sync-enova/` zgodnie z listą `` w `daemon/smartb2bsync-enova.xml`. Aktualizowane są program, biblioteki, adapter Enovy, skrypty, manifest usługi i `config/enova.json.sample`. Lokalny `config/enova.json` nie występuje na liście i nie jest nadpisywany. Sam `smartb2bsync-enova.exe` jest programem rozruchowym WinSW, dlatego nie aktualizuje samego siebie podczas pracy. `publish.ps1` porównuje zawartość gotowej paczki z manifestem i przerywa publikowanie, jeżeli którejkolwiek pozycji brakuje po jednej ze stron. diff --git a/daemon/install.cmd b/daemon/install.cmd index 3003f9c..be98290 100644 --- a/daemon/install.cmd +++ b/daemon/install.cmd @@ -7,6 +7,16 @@ if not exist "smartb2bsync-enova.exe" ( exit /b 1 ) +if not exist "..\config" mkdir "..\config" +if not exist "..\config\enova.json" ( + if not exist "..\config\enova.json.sample" ( + echo Brak ..\config\enova.json.sample. + exit /b 1 + ) + copy /Y "..\config\enova.json.sample" "..\config\enova.json" >nul + echo Utworzono lokalna konfiguracje ..\config\enova.json. +) + smartb2bsync-enova.exe install if errorlevel 1 exit /b %errorlevel% diff --git a/daemon/smartb2bsync-enova.xml b/daemon/smartb2bsync-enova.xml index 753f535..2a10562 100644 --- a/daemon/smartb2bsync-enova.xml +++ b/daemon/smartb2bsync-enova.xml @@ -10,4 +10,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/publish.ps1 b/publish.ps1 index c98271f..15690f5 100644 --- a/publish.ps1 +++ b/publish.ps1 @@ -21,12 +21,6 @@ $daemonSource = Join-Path $PSScriptRoot "daemon" $winSwSource = Resolve-Path (Join-Path $daemonSource "smartb2bsync-enova.exe") $output = [System.IO.Path]::GetFullPath($OutputPath) $daemonOutput = Join-Path $output "daemon" -$existingConfigurationPath = Join-Path $output "config\enova.json" -$existingConfiguration = if (Test-Path -LiteralPath $existingConfigurationPath) { - [System.IO.File]::ReadAllText($existingConfigurationPath) -} else { - $null -} if ($output -eq [System.IO.Path]::GetPathRoot($output) -or $output.Length -lt 10) { throw "Niebezpieczna ścieżka wyjściowa: $output" @@ -49,11 +43,23 @@ Copy-Item (Join-Path $daemonSource "smartb2bsync-enova.xml") $daemonOutput -Forc Copy-Item (Join-Path $daemonSource "install.cmd") $daemonOutput -Force Copy-Item (Join-Path $daemonSource "uninstall.cmd") $daemonOutput -Force -if ($null -ne $existingConfiguration) { - [System.IO.File]::WriteAllText( - (Join-Path $output "config\enova.json"), - $existingConfiguration, - [System.Text.UTF8Encoding]::new($false)) +$downloadBaseUrl = "https://demo.smartb2b.eu/files/smartb2b-sync-enova/" +[xml]$manifest = Get-Content -Raw (Join-Path $daemonOutput "smartb2bsync-enova.xml") +$downloadedFiles = @( + $manifest.service.download | + ForEach-Object { $_.from.Substring($downloadBaseUrl.Length).Replace('/', '\') } | + Sort-Object +) +$packagedFiles = @( + Get-ChildItem -Recurse -File $output | + ForEach-Object { $_.FullName.Substring($output.Length).TrimStart('\') } | + Where-Object { $_ -ne "daemon\smartb2bsync-enova.exe" } | + Sort-Object +) +$manifestDifferences = @(Compare-Object $packagedFiles $downloadedFiles) +if ($manifestDifferences.Count -ne 0) { + $details = $manifestDifferences | ForEach-Object { "$($_.SideIndicator) $($_.InputObject)" } + throw "Lista plików nie odpowiada paczce:`n$($details -join "`n")" } Write-Host "Gotowa usługa: $output" diff --git a/release/SmartB2B.Enova.Contracts.dll b/release/SmartB2B.Enova.Contracts.dll index a9d8aec682d2accbd919667c08fbdc6e4ed54d45..c680eb48fa51ff076dbbdb15caa76138f7e2b633 100644 GIT binary patch delta 1181 zcmXw(PiPcZ9LIle-b784-K=O+a#)z%O^mV{CzE8CX+&q^N>mU<3o)S0%w{8`C5Mtr zO4??&ji7jOeXS@;y8$o$!Gr5T5W@z0sV&r-mBKQi2}Lh@>Y*3=dtcKx%y&QU^Zv|x z!@Lc@7vVK=`9kXKed`i!l!($+o3M#SSZsMOKd#;$i?2@*9oO}cC}CDp+uCbH?Ogxu zQ=(5)%Gj;OMX&HwMf841`HmHRf{XD@QBB4?v`T7at z`BtOdtf#j}F~cyGnLaJn)Y){Ba~^p;o$OkZPw8{|OhhzGqhb~L7fsTd`aS*8!kUyq zx3+RNr6qKq6gUOW2<|C8Z~=J`<{(D-%uVUT2gqrR4dFwW3QPrj5nKZ=X}0AODh&*1 zfLD;eplbvl!K`Yde#jI=Q@zLx=Xtpj%SC!pFU12FkUlbydSd~2TC+ORy=z-jMlh>L zGI^{z-<@IanR?Cw(uaTCom^9t$|N61$&)S_pwTJ(A>um|?QKG+9` z;1FCxHjoi~1g1@TZDT#Vc-NJlFJk<1DhS?AANM`w2ZQ6Tn`new1M}{yV zxTaZsw_{?4cNEk88!_F#0gjLq*M{QQ1=s?6$YOk+{*gYo9M|tQ1TV6GEpNe42gV}3 z4*r1Z$9sbh6ISI}aPn?2`sBt{qd4a!>WzJOq%$C>ufNakv$HvSXfjvImz^M2a_!*U zK;9WFIa5w~$_-q1vRo>;<o#>$&FaBg~m+IeQTD+|%4-FXdTiUBmjb=|}DMvO9@nOqR ziSkq?hXSz6KA>|nz}BHbZgpsi?=q*$EiPY^Tr2VA;&+J0xkT#g(Z#wwa!<7K%JhH9 OKD)m4@EcLJH~$9?H6}#> delta 1073 zcmXYwUr19?9LIm>o^3F7Q`0OT2HTywM6qdtf)RI{vH1`V3e1P{j(RciA$kZh@Gc7q z3R6cWZ%fOJC)yFw~5>NTXSPK&8n@=5R}4{l;jz z(2;!U->Cp5jmh6O z*(0*&<@Lx577Mp*|8gBqq~?u{eCM;zwZxVfj^&2xa%a9S)zaaifsM$cThWQN`^!J- zw@a;DQyk2NI<&ttrRI2ziFEv!@QZ@xmVwpGM?MlM4Rn$D_(QATo!0}O^Szw&`&~G{`rMveWnRFh z0HK4ixmQvVLLrRc-AFze{gST@8dn>m%-4JBYL%^iEFN4U40Z9g^+J;RZB(^(zN%(B zhY$?Cp$bQ+oP+|>9Ay!b^vh&s5>gOe|C1;9N<=Hzlir%nQS-HTjIT60ZSsac2x}h?QDIue8cT z^!yS+HSumJOoO$>1_=2pyrB92}*Wvywkm7O~|Mw>tyB zv9?;iOP^*$WR-P$37++T*5Wf9S6<@tJ4K@SiZZU7!Y8Fq-?VGUlBvrZcAZ$R9?uyO zE?I+o{~R@E3_ZaMJJp^ax)O#`th4f*)}TU*Np!->{9Wpn(!3P2vXM-mAH4Sds_^HR zHFZ+bkr`ck%!-pWPv~Q=QWI`mmVb&|I4p^a*F4;}lFU1hA81nDEFLemp5@CQcSvO- z!dw9(Rx6cnB~e3?n2M TaULVmF`@t?%JuKUPTKtkON}R5 delta 905 zcmYMxe=L-790&04b3eF>t7cLW?vUMKejSl==EjaDW+VEcAwuWJ5xdwrWNK=D9m;aD z5p{91?z-ycXQ<862y+NcDnAza(I0h1BvQ_ zp+>g8u#L!+Cj)F*Hgv%)rJ1SOFX0H$V;;G6ZyB3M_yPU;|g+1-Kv# zoC7f+0SG`A$OQ%94k&ZbAFvkYxCUGh3@rpXB<=;F0}|Iq7=*-)5HyguIi1}%f=}^{ zc+xtNS}4Gg9QF1<;tuHSHd!Z{0=ddqKdS;v|L_4 zp2Xf@kUmKrA2WwFg*|Ug_%^LswuduiLgzLzhicIj-b)_LHHfBjOtEGFzjn51NyvNsO!67X#0mFoj#Cvyu-Hd0HPv^mf17Gwz7;Orrf}@lu>> zd{LCG2)4X86JIHg?xRz+lV9H@HM0`Ni##c72XF97hDSxiCr?c{c#BJ3pOvdUEH|$N zuUx-uEOYNzSDIbD8~C&7*mO`Nhqb<=`emXO{moNP-kg;meY#haRms|St1Ble+0DqG zI^^#`~8gfJN>8TmXf`m*b-IAi)*y6Ye4U_H1WNb{v!DN1zEDV#y KDpuWtN&f()I2@h; diff --git a/release/SmartB2B.Enova.Service.dll b/release/SmartB2B.Enova.Service.dll index 8fad37b848ca86e74169e31328db0971c1a54297..2ba3fdfff5c95d6bcc403ba9e7ca24649ab95e15 100644 GIT binary patch delta 2958 zcmXw*Z)_WP8ONVHr}^JBwa;FcuHr7qC{wG>bC*=skhmk6L?raR)mh0Hd$m>p3858uexI(6 z{JHOap67nQ``tOG3*%JSO}+ZVNxyQbD<6LnnUoPLFLG1G@O_#7*ZMENH1_*{ihKcK zNxpyG%Z$2~jH>v>fyfsdo_)IU73-vZY^QPA`s8rF-?UmHgNvxL+nTiQHY__c zI`~rxa!91Varb7v{ha;Qr>*a{tpDEvj2o_m#T5)RGKlQYo{@>C{F|@7#RK+`kH{s`-YqOkN?crOaUwrUf_E z?>aHL1GiuopOAZS4@#ez%z`QCLQh${m!9e~*I-&{XM75Ca2|7>T!IxC!e!Wk9k>O1 za1ZYHncHC<;)X&GPQk#imY!p$3@b1^^opKPNUp;sj9~}%pw(}N_MqRtB%jL!{bm^f zrVK+^hf%-zRW-@6W;;{su+xJwz=eV?^x*UW|48Hj&a2sVO5`%E(i4*FFd8ruMC2yi z957Fs7$0LgH8u&{XHXgBzhKauO5dQF#>KdpX^c+}H2>Erkwe%VG`F$?WoSuW%UDCk zc+gk#b|xUt53zuuFPmw?A;UU_h}_ijP&Oua@Le@8WD`seBg0&+VKaeC_J%ja$@(TY zPQ3h3?ZD~XuZ}FqgyW5vPJg5=UvvBs^PCMvSip!Gr%W{@N3e;B$sO&S%qHZX=Et)# zYL0TDH)_nZQXhAiU{vR-jg{Cbo1L+cyh2kG(}6v>kM|Cn&fxHdJe8eS9yq1LoE#=3 z*XfDKoAkuw9$v;wzcpsYsk!WUV;gcl>yrZtC2|Psn26jY$K;M4HIz-rJ^a2>pC3n< z;D|Xzm+T!elle!?&&J0Dm{JW@LWMAbP09(mN0xC09XA8HWN+Nu8lN2CLvjS0RAX|7 zYC`Vey`!Aa(V7`FV5fA{$_rDIGV}zT+ml=7@ud^SMDXAG zdUwt$TWeO+N-VKQ?Dpwz+ls-A~x5%kp^RTenU zsuZM5E~+of1v#s>AWv$wAdC8~DvMev>R(0o7WA*kc1DjYiZq(Hp0fSE_U&6!cH6!E VD{JVE@b2u)w2$8Y&|1$A{2$v5RJH&B delta 2831 zcmXw*TWB0*7>56UHs_>iIy<|yt<{+%wH8Z>RZv86hO8GtJ%I<*g1c;0s!}Xf1cS`1 ziC{p{Fj~YQnPuZes~5(-5~q4G==lQ<*4>Ox# zqNQAv=3ah&_(<*Tztn|KriN9&9#iVH5k3FOpZ=IRe)r(3e<*buLaTF~GhTkc)oQ?q z=y#>=j6G|2e6QYVonMKc)tB|1>y%clR9F12zCwQ!f1`)>a;&ZVKz5XZG96v9cV?`4 zyYt_DWc-|c6V)3TtPmTlw>S8W&XX<3j*9-(K1o?XVDbbNeZ z^1Ks}Z-!+UR!m{Rsc=x`m#4qBPjlZgx z8MA6uo^h%- z!7@E%dMdC=Pt^)#f(L1eDAddl3(h3vN&J*CC!OcW2|aa8o!p?aK{ds+7@e z4XO^AOv4;>p=TJb*drZs4Mq)DZJ)w8EMaaYmthq~a1u6P3ogPoT!ZT!ayxVHdNhQDCj~Dj&}2pL=Irdm<6XyuD}EIMC2Mwx@CfdT!-`B@}x=eDW(%DQ8YfZsC`V*@TWwR`@4+Bh@9KjkUA*ZlqKN_0dWE`|9t31Qy87?oE%f)yY zALC=nu#%T+5aA|W%K=Aj)4X9gXD^wrIeQ(B7Njr*=iw4uhoeQQ zmf%!zR$W`@*evufl0i!saV|_SDO@sU&Q@C*X8Nfuk`wZh#;%?9}o)w@0g8@g1j&P3QC1 zaz%CGl4Cz8ear2ZdD(m2{H>UG!IijmYIEly^SXE_{`%C&(5Hu=xnXPlf#8KF-?;6S z_ns}rL#JQddqE!l_<}S8J$%FPBVQkV@9bw!zyIBRC(P;pf6hpDXS||bZhn9IavhJI zxjY{H@=)PiPN|p8s`i=h|3CZUnJ?$8x2<^Z>ac#kdDrTtR&LC^Xg+oJiulj7*IB>h ZntRWUSiR>JFR#B`-Q1M@s%OT!{{=HUIs5pPa!E8&Qcp^g@gE3Ilh`|IXYs8QW#3?}15-4K{gvmf&5)fK~X;Yv+ lO9qDR6M+UZ@hxCxV0gj;bR!TbOqqVlpUG_d26d)2i~xGADzN|n delta 119 zcmZoz!r8EZa|0(MC$JumH^if-{q+%LOo*0RXkD9-IIG diff --git a/release/SmartB2B.Enova.Service.pdb b/release/SmartB2B.Enova.Service.pdb index b5e340f2eb3d80203a55b544fa8b4c0e306018cf..7720eed49922750fcd9f2223db68a2e1dcba5e67 100644 GIT binary patch delta 1944 zcmZwGc}x^{6bJD4gI)GOSCCs+K=A@mp^Y4SAWH?7Lr@k$5F0^Ji$&`J3dMr8O7H-5 zs!}}SiCWR3D7y88Ug;AwVebMgFp;!_j@QF4~%mLT*KK z^?Xf1^?C(egzkESSUs@#c(9c)gx^1rm==WK=LnS`mx2r!MX78N2f#p32(@&z9ilx9 z1_z;5sBuDc1{ZJ@YR@!75Z%E8ltRs*^+NQ9p`YP43>cl)4o4gTBVm+K`>6Fr^n)?r zFVyn6i4HF8TQ1dMtR!a8DEw2DbL$~qu^3xiYIZ@pP^#_!kO>wBXD>%!HmvIgU`9pyUXE(F-Mc1n7^%C){H@>7Bj zD>B^^itOgNzw-{u*u219?+|lmKZhRbUwR@HU;F5h!Fc)loU z>FlwK2W^PWh?&h!m7GfUn;!1=ME7_`_4ua-b)|pqrQpp0vEN;Jd+$J*>J-;l68T6o zE%<%wiUhN~VpEhPv8^ET$)T*D%^y7NDq4yRhSU2NUhbH2H79Y@ACYU?6YsAA)WJGo)YKGKcz^R!&v`>L0w&gT~b2dRP^exI}YnM=q0 zx`|z1xr2ci`2!@+3(c{N@4Zdw5l|JzdN2Lsk}PVaqmsZXzq4`C$~;HPyD3Ru2f(DkFv+s zHEnU$E82~}z1uO)TT{oyudbNT-g8o$S1B%vjCEB^-1^ zy_Ff;nejO@F=ldMCVys%M+0Y@*ge|9C}!HhOy`)Xo0+YcS;@>AW=`c?rZjk1YHsvl zjX~(-o=$mVv7yP0HH~3Sy87O!B4)9pS;v~cPLZ%^-Gr;qhdK0n#h;_BEvCcy#rCeN@q2@Zho)z{-O?Xks4TH;ts27gG;lycd> DnCTB0 delta 1902 zcmZwGdr(wW90%~XK8CVMrbcT}GszqcUzlK+8TP#w^p9rm%;)^h{oUXB-E;QN{?N&q zJ6X*dPeClvWZlY~G$QKB-Kcgs@PW2!U0uQ_ZJQlB+?($1ta%XUI7A~Tj&KT~%L$FbgK5$fv z$WhJjPDJi}QcS*TF}u{?WLq9x*VJMi*r~#gWNW;hmd?65mK@D?35AVTJSOIIG z5K3Sh)WB}2heL22Owa|tz-@Q{i9;A(fKA%wPut%wzx=(#D|6&3u&>8w)07@tAJ{>0y+SPUgx;H6_x9(s9ML(UtLoAW3G?} zfFfVzgk&8lBsqUCBp1xR!1wiYu1-vkBgHh#=Oi=|9w{MVl!UCKUNzyOC2fr!jaAW> zWZ>r(q>JHlGOCV|Q9X3ECJ9wG#UHWB{pS!O1 zL-dCLn9Ao84YTErY=L2ce45zX)(3xzY(u47k&rI#6LH)2wCBb?CkZXr^*KqYKv&`{ zp+D!8I7=yNuEteDy^$JMDcy}+>L#H#qnEl#X=SuVAtBEgjY3MHF(sInv<}NBNQygK z+RkU$PFs@P~JYzW#a z+z>ptH)vsoe~x&0&h@A;yGCViL+MObQ7p6Tb*dd|N`HP>yTmZgzHcPMd!n{dAsO1C z$xdzdKC9Q4sY&-^y~VD6m#*EVHjP4G~r?i|q%UTN7rdEnqtuK~BD zkMi2%f|HxpIA`T=yYOQ`SoEp`r|%C)FFpx4HS3}3-s+1hm;JV#e(wq4FF zk4=j&@DX0>xfws@-rGM%1bG$Onp_jNJo2btSJ=G#|gclTH1|WnRfmw%B0l| zwuWj&necqsgK}l7i~EalPWy!UZB&oXc&udgyNyBG#-xssYa81$Tc`U^SIQO4sAR_3 z%oxjz^OJMx|r!# zX8N18IkC1k3@ZI8H*>{pFWKqws5IEjduF!a^iy_5%+4rUy%Gh?Y(=|*wTE%<&?Y52 zn0rV23B!@3B<>{tKOy>Jt-&!l#lzgwj*YCNVyt;pvb)*0WA|u+19T@ZGTQ_P!0$C$ VqnUrlY?DqO))~SbQkSwr`XB8k_Ll$v diff --git a/release/adapters/SmartB2B.Enova.Adapter.dll b/release/adapters/SmartB2B.Enova.Adapter.dll index e941e302aac2e32a99aa3ccf6b0cb464f9b462e0..89914256271a643efe0fac77a3f6aa0e526849f6 100644 GIT binary patch delta 496 zcmXw0O-mb56g_WdM1oPQDT1ZN#uj3maWZ)^6CMRWstd7*ii(D|;(SCDm-z#UwGjI0 z@NA1BM5+se3&C+A{Q;soaqY%+7u}0cZ`9n&x%b?2xsUtaD=ZWiR!dr6e01Oc@|Yd? zmFcGUZ-7yd%>mb{AB}_yK$z;GVPH~56mwros+c#|hOUSD(@>tV~#7o+TDi8j)R30{W8s}_fBr&jidU5dXQ|fK7 z6Pwg{ior-4reVe{GwoVV#^bi-2-BWVWq7y4bKJ`bTL{;49N{@>OGu`7BtxHE+z*< ReRm&s_$qk7|1saJzX6Ozd-(tW delta 362 zcmZq3Xvmn*!J?r3;mgDx8OE-OE5rFry%`w%8Gs;xfnf#nL`7kq1_lNmAYZ|YfgxnF zB9qSKNJe$W36mRvAp}wkU^_C`@g0C+OloWVl#_apmrE22eB0=sn{^19kui7ic5^ diff --git a/release/config/enova.json b/release/config/enova.json.sample similarity index 100% rename from release/config/enova.json rename to release/config/enova.json.sample diff --git a/release/daemon/install.cmd b/release/daemon/install.cmd index 3003f9c..be98290 100644 --- a/release/daemon/install.cmd +++ b/release/daemon/install.cmd @@ -7,6 +7,16 @@ if not exist "smartb2bsync-enova.exe" ( exit /b 1 ) +if not exist "..\config" mkdir "..\config" +if not exist "..\config\enova.json" ( + if not exist "..\config\enova.json.sample" ( + echo Brak ..\config\enova.json.sample. + exit /b 1 + ) + copy /Y "..\config\enova.json.sample" "..\config\enova.json" >nul + echo Utworzono lokalna konfiguracje ..\config\enova.json. +) + smartb2bsync-enova.exe install if errorlevel 1 exit /b %errorlevel% diff --git a/release/daemon/smartb2bsync-enova.xml b/release/daemon/smartb2bsync-enova.xml index 753f535..2a10562 100644 --- a/release/daemon/smartb2bsync-enova.xml +++ b/release/daemon/smartb2bsync-enova.xml @@ -10,4 +10,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/SmartB2B.Enova.Service/SmartB2B.Enova.Service.csproj b/src/SmartB2B.Enova.Service/SmartB2B.Enova.Service.csproj index b78b08e..22fbe0e 100644 --- a/src/SmartB2B.Enova.Service/SmartB2B.Enova.Service.csproj +++ b/src/SmartB2B.Enova.Service/SmartB2B.Enova.Service.csproj @@ -13,7 +13,7 @@ - + diff --git a/src/SmartB2B.Enova.Service/config/enova.json b/src/SmartB2B.Enova.Service/config/enova.json.sample similarity index 100% rename from src/SmartB2B.Enova.Service/config/enova.json rename to src/SmartB2B.Enova.Service/config/enova.json.sample