mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-04-30 07:05:06 +03:00
changed Yggdrasil to RiV-mesh
added webview GUI
This commit is contained in:
parent
3613614b41
commit
b5ee2aa023
75 changed files with 1066 additions and 471 deletions
120
contrib/msi/build-msi.sh
Normal file → Executable file
120
contrib/msi/build-msi.sh
Normal file → Executable file
|
@ -1,6 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# This script generates an MSI file for Yggdrasil for a given architecture. It
|
||||
# This script generates an MSI file for Mesh for a given architecture. It
|
||||
# needs to run on Windows within MSYS2 and Go 1.13 or later must be installed on
|
||||
# the system and within the PATH. This is ran currently by Appveyor (see
|
||||
# appveyor.yml in the repository root) for both x86 and x64.
|
||||
|
@ -47,20 +47,20 @@ then
|
|||
)
|
||||
fi
|
||||
|
||||
# Build Yggdrasil!
|
||||
[ "${PKGARCH}" == "x64" ] && GOOS=windows GOARCH=amd64 CGO_ENABLED=0 ./build
|
||||
[ "${PKGARCH}" == "x86" ] && GOOS=windows GOARCH=386 CGO_ENABLED=0 ./build
|
||||
# Build Mesh!
|
||||
[ "${PKGARCH}" == "x64" ] && GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CXX=x86_64-w64-mingw32-g++ LDFLAGS="-H windowsgui" ./build
|
||||
[ "${PKGARCH}" == "x86" ] && GOOS=windows GOARCH=386 CGO_ENABLED=1 CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LDFLAGS="-H windowsgui" ./build
|
||||
[ "${PKGARCH}" == "arm" ] && GOOS=windows GOARCH=arm CGO_ENABLED=0 ./build
|
||||
#[ "${PKGARCH}" == "arm64" ] && GOOS=windows GOARCH=arm64 CGO_ENABLED=0 ./build
|
||||
|
||||
# Create the postinstall script
|
||||
cat > updateconfig.bat << EOF
|
||||
if not exist %ALLUSERSPROFILE%\\Yggdrasil (
|
||||
mkdir %ALLUSERSPROFILE%\\Yggdrasil
|
||||
if not exist %ALLUSERSPROFILE%\\RiV-mesh (
|
||||
mkdir %ALLUSERSPROFILE%\\RiV-mesh
|
||||
)
|
||||
if not exist %ALLUSERSPROFILE%\\Yggdrasil\\yggdrasil.conf (
|
||||
if exist yggdrasil.exe (
|
||||
yggdrasil.exe -genconf > %ALLUSERSPROFILE%\\Yggdrasil\\yggdrasil.conf
|
||||
if not exist %ALLUSERSPROFILE%\\RiV-mesh\\mesh.conf (
|
||||
if exist mesh.exe (
|
||||
mesh.exe -genconf > %ALLUSERSPROFILE%\\RiV-mesh\\mesh.conf
|
||||
)
|
||||
)
|
||||
EOF
|
||||
|
@ -69,6 +69,9 @@ EOF
|
|||
PKGNAME=$(sh contrib/semver/name.sh)
|
||||
PKGVERSION=$(sh contrib/msi/msversion.sh --bare)
|
||||
PKGVERSIONMS=$(echo $PKGVERSION | tr - .)
|
||||
PKGINDEXFILE=contrib/ui/mesh-ui/index.html
|
||||
PKGLICENSEFILE=LICENSE.rtf
|
||||
|
||||
[ "${PKGARCH}" == "x64" ] && \
|
||||
PKGGUID="77757838-1a23-40a5-a720-c3b43e0260cc" PKGINSTFOLDER="ProgramFiles64Folder" || \
|
||||
PKGGUID="54a3294e-a441-4322-aefb-3bb40dd022bb" PKGINSTFOLDER="ProgramFilesFolder"
|
||||
|
@ -81,8 +84,12 @@ then
|
|||
fi
|
||||
if [ $PKGARCH = "x64" ]; then
|
||||
PKGWINTUNDLL=wintun/bin/amd64/wintun.dll
|
||||
PKGWEBVIEWFILE=contrib/ui/mesh-ui/dll/x64/webview.dll
|
||||
PKGWEBVIEWFILELOADER=contrib/ui/mesh-ui/dll/x64/WebView2Loader.dll
|
||||
elif [ $PKGARCH = "x86" ]; then
|
||||
PKGWINTUNDLL=wintun/bin/x86/wintun.dll
|
||||
PKGWEBVIEWFILE=contrib/ui/mesh-ui/dll/x86/webview.dll
|
||||
PKGWEBVIEWFILELOADER=contrib/ui/mesh-ui/dll/x86/WebView2Loader.dll
|
||||
elif [ $PKGARCH = "arm" ]; then
|
||||
PKGWINTUNDLL=wintun/bin/arm/wintun.dll
|
||||
#elif [ $PKGARCH = "arm64" ]; then
|
||||
|
@ -93,9 +100,9 @@ else
|
|||
fi
|
||||
|
||||
if [ $PKGNAME != "master" ]; then
|
||||
PKGDISPLAYNAME="Yggdrasil Network (${PKGNAME} branch)"
|
||||
PKGDISPLAYNAME="RiV-mesh Network (${PKGNAME} branch)"
|
||||
else
|
||||
PKGDISPLAYNAME="Yggdrasil Network"
|
||||
PKGDISPLAYNAME="RiV-mesh Network"
|
||||
fi
|
||||
|
||||
# Generate the wix.xml file
|
||||
|
@ -109,14 +116,14 @@ cat > wix.xml << EOF
|
|||
Language="1033"
|
||||
Codepage="1252"
|
||||
Version="${PKGVERSIONMS}"
|
||||
Manufacturer="github.com/yggdrasil-network">
|
||||
Manufacturer="github.com/RiV-chain">
|
||||
|
||||
<Package
|
||||
Id="*"
|
||||
Keywords="Installer"
|
||||
Description="Yggdrasil Network Installer"
|
||||
Comments="Yggdrasil Network standalone router for Windows."
|
||||
Manufacturer="github.com/yggdrasil-network"
|
||||
Description="RiV-mesh Network Installer"
|
||||
Comments="RiV-mesh Network standalone router for Windows."
|
||||
Manufacturer="github.com/RiV-chain"
|
||||
InstallerVersion="200"
|
||||
InstallScope="perMachine"
|
||||
Languages="1033"
|
||||
|
@ -134,14 +141,13 @@ cat > wix.xml << EOF
|
|||
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="${PKGINSTFOLDER}" Name="PFiles">
|
||||
<Directory Id="YggdrasilInstallFolder" Name="Yggdrasil">
|
||||
|
||||
<Directory Id="MeshInstallFolder" Name="RiV-mesh">
|
||||
<Component Id="MainExecutable" Guid="c2119231-2aa3-4962-867a-9759c87beb24">
|
||||
<File
|
||||
Id="Yggdrasil"
|
||||
Name="yggdrasil.exe"
|
||||
Id="Mesh"
|
||||
Name="mesh.exe"
|
||||
DiskId="1"
|
||||
Source="yggdrasil.exe"
|
||||
Source="mesh.exe"
|
||||
KeyPath="yes" />
|
||||
|
||||
<File
|
||||
|
@ -151,21 +157,21 @@ cat > wix.xml << EOF
|
|||
Source="${PKGWINTUNDLL}" />
|
||||
|
||||
<ServiceInstall
|
||||
Id="ServiceInstaller"
|
||||
Id="MeshServiceInstaller"
|
||||
Account="LocalSystem"
|
||||
Description="Yggdrasil Network router process"
|
||||
DisplayName="Yggdrasil Service"
|
||||
Description="RiV-mesh Network router process"
|
||||
DisplayName="RiV-mesh Service"
|
||||
ErrorControl="normal"
|
||||
LoadOrderGroup="NetworkProvider"
|
||||
Name="Yggdrasil"
|
||||
Name="Mesh"
|
||||
Start="auto"
|
||||
Type="ownProcess"
|
||||
Arguments='-useconffile "%ALLUSERSPROFILE%\\Yggdrasil\\yggdrasil.conf" -logto "%ALLUSERSPROFILE%\\Yggdrasil\\yggdrasil.log"'
|
||||
Arguments='-useconffile "%ALLUSERSPROFILE%\\RiV-mesh\\mesh.conf" -logto "%ALLUSERSPROFILE%\\RiV-mesh\\mesh.log"'
|
||||
Vital="yes" />
|
||||
|
||||
<ServiceControl
|
||||
Id="ServiceControl"
|
||||
Name="yggdrasil"
|
||||
Id="MeshServiceControl"
|
||||
Name="Mesh"
|
||||
Start="install"
|
||||
Stop="both"
|
||||
Remove="uninstall" />
|
||||
|
@ -173,13 +179,42 @@ cat > wix.xml << EOF
|
|||
|
||||
<Component Id="CtrlExecutable" Guid="a916b730-974d-42a1-b687-d9d504cbb86a">
|
||||
<File
|
||||
Id="Yggdrasilctl"
|
||||
Name="yggdrasilctl.exe"
|
||||
Id="Meshctl"
|
||||
Name="meshctl.exe"
|
||||
DiskId="1"
|
||||
Source="yggdrasilctl.exe"
|
||||
Source="meshctl.exe"
|
||||
KeyPath="yes"/>
|
||||
</Component>
|
||||
|
||||
<Component Id="UIExecutable" Guid="ef9f30e0-8274-4526-835b-51bc09b5b1b7">
|
||||
|
||||
<File
|
||||
Id="MeshUI"
|
||||
Name="mesh-ui.exe"
|
||||
DiskId="1"
|
||||
Source="mesh-ui.exe"
|
||||
KeyPath="yes" />
|
||||
|
||||
<File
|
||||
Id="WebViewHtmlFile"
|
||||
Name="index.html"
|
||||
DiskId="1"
|
||||
Source="${PKGINDEXFILE}" />
|
||||
|
||||
<File
|
||||
Id="WebViewDllFile"
|
||||
Name="webview.dll"
|
||||
DiskId="1"
|
||||
Source="${PKGWEBVIEWFILE}" />
|
||||
|
||||
<File
|
||||
Id="WebViewLoaderFile"
|
||||
Name="WebView2Loader.dll"
|
||||
DiskId="1"
|
||||
Source="${PKGWEBVIEWFILELOADER}" />
|
||||
|
||||
</Component>
|
||||
|
||||
<Component Id="ConfigScript" Guid="64a3733b-c98a-4732-85f3-20cd7da1a785">
|
||||
<File
|
||||
Id="Configbat"
|
||||
|
@ -192,20 +227,39 @@ cat > wix.xml << EOF
|
|||
</Directory>
|
||||
</Directory>
|
||||
|
||||
<Feature Id="YggdrasilFeature" Title="Yggdrasil" Level="1">
|
||||
<Feature Id="MeshFeature" Title="Mesh" Level="1">
|
||||
<ComponentRef Id="MainExecutable" />
|
||||
<ComponentRef Id="UIExecutable" />
|
||||
<ComponentRef Id="CtrlExecutable" />
|
||||
<ComponentRef Id="ConfigScript" />
|
||||
</Feature>
|
||||
|
||||
<CustomAction
|
||||
Id="UpdateGenerateConfig"
|
||||
Directory="YggdrasilInstallFolder"
|
||||
Directory="MeshInstallFolder"
|
||||
ExeCommand="cmd.exe /c updateconfig.bat"
|
||||
Execute="deferred"
|
||||
Return="check"
|
||||
Impersonate="yes" />
|
||||
|
||||
<!-- Step 2: Add UI to your installer / Step 4: Trigger the custom action -->
|
||||
<UI>
|
||||
<UIRef Id="WixUI_Minimal" />
|
||||
<Publish Dialog="ExitDialog"
|
||||
Control="Finish"
|
||||
Event="DoAction"
|
||||
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
|
||||
</UI>
|
||||
<WixVariable Id="WixUILicenseRtf" Value="LICENSE.rtf" />
|
||||
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Launch RiV-mesh" />
|
||||
|
||||
<!-- Step 3: Include the custom action -->
|
||||
<Property Id="WixShellExecTarget" Value="[#MeshUI]" />
|
||||
<CustomAction Id="LaunchApplication"
|
||||
BinaryKey="WixCA"
|
||||
DllEntry="WixShellExec"
|
||||
Impersonate="yes" />
|
||||
|
||||
<InstallExecuteSequence>
|
||||
<Custom
|
||||
Action="UpdateGenerateConfig"
|
||||
|
@ -222,4 +276,4 @@ EOF
|
|||
CANDLEFLAGS="-nologo"
|
||||
LIGHTFLAGS="-nologo -spdb -sice:ICE71 -sice:ICE61"
|
||||
wixbin/candle $CANDLEFLAGS -out ${PKGNAME}-${PKGVERSION}-${PKGARCH}.wixobj -arch ${PKGARCH} wix.xml && \
|
||||
wixbin/light $LIGHTFLAGS -ext WixUtilExtension.dll -out ${PKGNAME}-${PKGVERSION}-${PKGARCH}.msi ${PKGNAME}-${PKGVERSION}-${PKGARCH}.wixobj
|
||||
wixbin/light $LIGHTFLAGS -ext WixUIExtension -ext WixUtilExtension -out ${PKGNAME}-${PKGVERSION}-${PKGARCH}.msi ${PKGNAME}-${PKGVERSION}-${PKGARCH}.wixobj
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue