Merge pull request #1631 from safing/fix/linux-tauri-build
Fix Earthfile linux tauri build
43
Earthfile
|
@ -62,9 +62,9 @@ build:
|
||||||
# TODO:
|
# TODO:
|
||||||
# BUILD +tauri-build --target="x86_64-pc-windows-gnu"
|
# BUILD +tauri-build --target="x86_64-pc-windows-gnu"
|
||||||
|
|
||||||
# Bild Tauri release bundle for Windows:
|
# Bild Tauri bundle for Windows:
|
||||||
# ./dist/windows_amd64/portmaster-app_vX-X-X.zip
|
# ./dist/windows_amd64/portmaster-app_vX-X-X.zip
|
||||||
BUILD +tauri-windows-release-bundle
|
BUILD +tauri-build-windows-bundle
|
||||||
|
|
||||||
# Build UI assets:
|
# Build UI assets:
|
||||||
# ./dist/all/assets.zip
|
# ./dist/all/assets.zip
|
||||||
|
@ -82,7 +82,7 @@ angular-ci:
|
||||||
|
|
||||||
tauri-ci:
|
tauri-ci:
|
||||||
BUILD +tauri-build --target="x86_64-unknown-linux-gnu"
|
BUILD +tauri-build --target="x86_64-unknown-linux-gnu"
|
||||||
BUILD +tauri-windows-release-bundle
|
BUILD +tauri-build-windows-bundle
|
||||||
|
|
||||||
kext-ci:
|
kext-ci:
|
||||||
BUILD +kext-build
|
BUILD +kext-build
|
||||||
|
@ -183,19 +183,29 @@ go-build:
|
||||||
CACHE --sharing shared "$GOMODCACHE"
|
CACHE --sharing shared "$GOMODCACHE"
|
||||||
|
|
||||||
RUN mkdir /tmp/build
|
RUN mkdir /tmp/build
|
||||||
ENV CGO_ENABLED = "0"
|
|
||||||
|
|
||||||
|
# Fall back to build all binaries when none is specified.
|
||||||
IF [ "${CMDS}" = "" ]
|
IF [ "${CMDS}" = "" ]
|
||||||
LET CMDS=$(ls -1 "./cmds/")
|
LET CMDS=$(ls -1 "./cmds/")
|
||||||
END
|
END
|
||||||
|
|
||||||
# Build all go binaries from the specified in CMDS
|
# Build all go binaries from the specified in CMDS
|
||||||
FOR bin IN $CMDS
|
FOR bin IN $CMDS
|
||||||
RUN --no-cache go build -ldflags="-X github.com/safing/portbase/info.version=${VERSION} -X github.com/safing/portbase/info.buildSource=${SOURCE} -X github.com/safing/portbase/info.buildTime=${BUILD_TIME}" -o "/tmp/build/" ./cmds/${bin}
|
# Add special build options.
|
||||||
|
IF [ "${GOOS}" = "windows" ] && [ "${bin}" = "portmaster-start" ]
|
||||||
|
# Windows, portmaster-start
|
||||||
|
ENV CGO_ENABLED = "1"
|
||||||
|
ENV EXTRA_LD_FLAGS = "-H windowsgui"
|
||||||
|
ELSE
|
||||||
|
# Defaults
|
||||||
|
ENV CGO_ENABLED = "0"
|
||||||
|
ENV EXTRA_LD_FLAGS = ""
|
||||||
|
END
|
||||||
|
|
||||||
|
RUN --no-cache go build -ldflags="-X github.com/safing/portbase/info.version=${VERSION} -X github.com/safing/portbase/info.buildSource=${SOURCE} -X github.com/safing/portbase/info.buildTime=${BUILD_TIME} ${EXTRA_LD_FLAGS}" -o "/tmp/build/" ./cmds/${bin}
|
||||||
END
|
END
|
||||||
|
|
||||||
DO +GO_ARCH_STRING --goos="${GOOS}" --goarch="${GOARCH}" --goarm="${GOARM}"
|
DO +GO_ARCH_STRING --goos="${GOOS}" --goarch="${GOARCH}" --goarm="${GOARM}"
|
||||||
|
|
||||||
FOR bin IN $(ls -1 "/tmp/build/")
|
FOR bin IN $(ls -1 "/tmp/build/")
|
||||||
SAVE ARTIFACT --keep-ts "/tmp/build/${bin}" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/${bin}"
|
SAVE ARTIFACT --keep-ts "/tmp/build/${bin}" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/${bin}"
|
||||||
END
|
END
|
||||||
|
@ -494,22 +504,17 @@ tauri-build:
|
||||||
# DO rust+CROSS --target="${target}"
|
# DO rust+CROSS --target="${target}"
|
||||||
|
|
||||||
RUN echo output: $(ls -R "target/${target}/release")
|
RUN echo output: $(ls -R "target/${target}/release")
|
||||||
LET outbin="error"
|
|
||||||
FOR bin IN "portmaster Portmaster.exe WebView2Loader.dll"
|
# Binaries
|
||||||
# Modify output binary.
|
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/app" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/portmaster-app"
|
||||||
SET outbin="${bin}"
|
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/app.exe" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/portmaster-app.exe"
|
||||||
IF [ "${bin}" = "portmaster" ]
|
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/WebView2Loader.dll" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/WebView2Loader.dll"
|
||||||
SET outbin="portmaster-app"
|
|
||||||
ELSE IF [ "${bin}" = "Portmaster.exe" ]
|
# Installers
|
||||||
SET outbin="portmaster-app.exe"
|
|
||||||
END
|
|
||||||
# Save output binary as local artifact.
|
|
||||||
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/${bin}" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/${outbin}"
|
|
||||||
END
|
|
||||||
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/bundle/deb/*.deb" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/"
|
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/bundle/deb/*.deb" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/"
|
||||||
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/bundle/rpm/*.rpm" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/"
|
SAVE ARTIFACT --if-exists --keep-ts "target/${target}/release/bundle/rpm/*.rpm" AS LOCAL "${outputDir}/${GO_ARCH_STRING}/"
|
||||||
|
|
||||||
tauri-windows-release-bundle:
|
tauri-build-windows-bundle:
|
||||||
FROM +tauri-src
|
FROM +tauri-src
|
||||||
|
|
||||||
ARG target="x86_64-pc-windows-gnu"
|
ARG target="x86_64-pc-windows-gnu"
|
||||||
|
|
BIN
assets/data/favicons/android-icon-144x144.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
assets/data/favicons/android-icon-192x192.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
assets/data/favicons/android-icon-36x36.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
BIN
assets/data/favicons/android-icon-48x48.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
assets/data/favicons/android-icon-72x72.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
assets/data/favicons/android-icon-96x96.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/data/favicons/apple-icon-114x114.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
assets/data/favicons/apple-icon-120x120.png
Normal file
After Width: | Height: | Size: 7 KiB |
BIN
assets/data/favicons/apple-icon-144x144.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
assets/data/favicons/apple-icon-152x152.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
assets/data/favicons/apple-icon-180x180.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
assets/data/favicons/apple-icon-57x57.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
assets/data/favicons/apple-icon-60x60.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
assets/data/favicons/apple-icon-72x72.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
assets/data/favicons/apple-icon-76x76.png
Normal file
After Width: | Height: | Size: 3.8 KiB |
BIN
assets/data/favicons/apple-icon-precomposed.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
assets/data/favicons/apple-icon.png
Normal file
After Width: | Height: | Size: 11 KiB |
2
assets/data/favicons/browserconfig.xml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<browserconfig><msapplication><tile><square70x70logo src="/assets/favicons/ms-icon-70x70.png"/><square150x150logo src="/assets/favicons/ms-icon-150x150.png"/><square310x310logo src="/assets/favicons/ms-icon-310x310.png"/><TileColor>#121213</TileColor></tile></msapplication></browserconfig>
|
BIN
assets/data/favicons/favicon-16x16.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
assets/data/favicons/favicon-32x32.png
Normal file
After Width: | Height: | Size: 2.1 KiB |
BIN
assets/data/favicons/favicon-96x96.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
assets/data/favicons/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
17
assets/data/favicons/head.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<link rel="apple-touch-icon" sizes="57x57" href="/assets/favicons/apple-icon-57x57.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="60x60" href="/assets/favicons/apple-icon-60x60.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="72x72" href="/assets/favicons/apple-icon-72x72.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="76x76" href="/assets/favicons/apple-icon-76x76.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="114x114" href="/assets/favicons/apple-icon-114x114.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="120x120" href="/assets/favicons/apple-icon-120x120.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="144x144" href="/assets/favicons/apple-icon-144x144.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="152x152" href="/assets/favicons/apple-icon-152x152.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicons/apple-icon-180x180.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="192x192" href="/assets/favicons/android-icon-192x192.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicons/favicon-32x32.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicons/favicon-96x96.png">
|
||||||
|
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicons/favicon-16x16.png">
|
||||||
|
<link rel="manifest" href="/assets/favicons/manifest.json">
|
||||||
|
<meta name="msapplication-TileColor" content="#121213">
|
||||||
|
<meta name="msapplication-TileImage" content="/assets/favicons/ms-icon-144x144.png">
|
||||||
|
<meta name="theme-color" content="#121213">
|
41
assets/data/favicons/manifest.json
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{
|
||||||
|
"name": "App",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "\/assets\/favicons\/android-icon-36x36.png",
|
||||||
|
"sizes": "36x36",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "0.75"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/assets\/favicons\/android-icon-48x48.png",
|
||||||
|
"sizes": "48x48",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/assets\/favicons\/android-icon-72x72.png",
|
||||||
|
"sizes": "72x72",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "1.5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/assets\/favicons\/android-icon-96x96.png",
|
||||||
|
"sizes": "96x96",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "2.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/assets\/favicons\/android-icon-144x144.png",
|
||||||
|
"sizes": "144x144",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "3.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "\/assets\/favicons\/android-icon-192x192.png",
|
||||||
|
"sizes": "192x192",
|
||||||
|
"type": "image\/png",
|
||||||
|
"density": "4.0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
BIN
assets/data/favicons/ms-icon-144x144.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
assets/data/favicons/ms-icon-150x150.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
assets/data/favicons/ms-icon-310x310.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
assets/data/favicons/ms-icon-70x70.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
|
@ -2,110 +2,110 @@
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-300/Roboto-300.eot');
|
src: url('/assets/fonts/Roboto-300/Roboto-300.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-300/Roboto-300.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-300/Roboto-300.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Light'),
|
local('Roboto Light'),
|
||||||
local('Roboto-300'),
|
local('Roboto-300'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-300/Roboto-300.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.woff') format('woff'),
|
url('/assets/fonts/Roboto-300/Roboto-300.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-300/Roboto-300.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-300/Roboto-300.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.eot');
|
src: url('/assets/fonts/Roboto-regular/Roboto-regular.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-regular/Roboto-regular.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto'),
|
local('Roboto'),
|
||||||
local('Roboto-regular'),
|
local('Roboto-regular'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-regular/Roboto-regular.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.woff') format('woff'),
|
url('/assets/fonts/Roboto-regular/Roboto-regular.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-regular/Roboto-regular.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-regular/Roboto-regular.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-500/Roboto-500.eot');
|
src: url('/assets/fonts/Roboto-500/Roboto-500.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-500/Roboto-500.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-500/Roboto-500.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Medium'),
|
local('Roboto Medium'),
|
||||||
local('Roboto-500'),
|
local('Roboto-500'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-500/Roboto-500.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.woff') format('woff'),
|
url('/assets/fonts/Roboto-500/Roboto-500.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-500/Roboto-500.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-500/Roboto-500.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-700/Roboto-700.eot');
|
src: url('/assets/fonts/Roboto-700/Roboto-700.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-700/Roboto-700.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-700/Roboto-700.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Bold'),
|
local('Roboto Bold'),
|
||||||
local('Roboto-700'),
|
local('Roboto-700'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-700/Roboto-700.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.woff') format('woff'),
|
url('/assets/fonts/Roboto-700/Roboto-700.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-700/Roboto-700.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-700/Roboto-700.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.eot');
|
src: url('/assets/fonts/Roboto-300italic/Roboto-300italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-300italic/Roboto-300italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Light Italic'),
|
local('Roboto Light Italic'),
|
||||||
local('Roboto-300italic'),
|
local('Roboto-300italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.eot');
|
src: url('/assets/fonts/Roboto-italic/Roboto-italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-italic/Roboto-italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Italic'),
|
local('Roboto Italic'),
|
||||||
local('Roboto-italic'),
|
local('Roboto-italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-italic/Roboto-italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-italic/Roboto-italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-italic/Roboto-italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-italic/Roboto-italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.eot');
|
src: url('/assets/fonts/Roboto-500italic/Roboto-500italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-500italic/Roboto-500italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Medium Italic'),
|
local('Roboto Medium Italic'),
|
||||||
local('Roboto-500italic'),
|
local('Roboto-500italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 900;
|
font-weight: 900;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.eot');
|
src: url('/assets/fonts/Roboto-700italic/Roboto-700italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-700italic/Roboto-700italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Bold Italic'),
|
local('Roboto Bold Italic'),
|
||||||
local('Roboto-700italic'),
|
local('Roboto-700italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,110 +2,110 @@
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-300/Roboto-300.eot');
|
src: url('/assets/fonts/Roboto-300/Roboto-300.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-300/Roboto-300.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-300/Roboto-300.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Light'),
|
local('Roboto Light'),
|
||||||
local('Roboto-300'),
|
local('Roboto-300'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-300/Roboto-300.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.woff') format('woff'),
|
url('/assets/fonts/Roboto-300/Roboto-300.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-300/Roboto-300.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-300/Roboto-300.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-300/Roboto-300.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.eot');
|
src: url('/assets/fonts/Roboto-regular/Roboto-regular.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-regular/Roboto-regular.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto'),
|
local('Roboto'),
|
||||||
local('Roboto-regular'),
|
local('Roboto-regular'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-regular/Roboto-regular.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.woff') format('woff'),
|
url('/assets/fonts/Roboto-regular/Roboto-regular.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-regular/Roboto-regular.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-regular/Roboto-regular.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-regular/Roboto-regular.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-500/Roboto-500.eot');
|
src: url('/assets/fonts/Roboto-500/Roboto-500.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-500/Roboto-500.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-500/Roboto-500.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Medium'),
|
local('Roboto Medium'),
|
||||||
local('Roboto-500'),
|
local('Roboto-500'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-500/Roboto-500.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.woff') format('woff'),
|
url('/assets/fonts/Roboto-500/Roboto-500.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-500/Roboto-500.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-500/Roboto-500.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-500/Roboto-500.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
src: url('/assets/vendor/fonts/Roboto-700/Roboto-700.eot');
|
src: url('/assets/fonts/Roboto-700/Roboto-700.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-700/Roboto-700.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-700/Roboto-700.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Bold'),
|
local('Roboto Bold'),
|
||||||
local('Roboto-700'),
|
local('Roboto-700'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-700/Roboto-700.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.woff') format('woff'),
|
url('/assets/fonts/Roboto-700/Roboto-700.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-700/Roboto-700.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-700/Roboto-700.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-700/Roboto-700.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.eot');
|
src: url('/assets/fonts/Roboto-300italic/Roboto-300italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-300italic/Roboto-300italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Light Italic'),
|
local('Roboto Light Italic'),
|
||||||
local('Roboto-300italic'),
|
local('Roboto-300italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-300italic/Roboto-300italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-300italic/Roboto-300italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.eot');
|
src: url('/assets/fonts/Roboto-italic/Roboto-italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-italic/Roboto-italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Italic'),
|
local('Roboto Italic'),
|
||||||
local('Roboto-italic'),
|
local('Roboto-italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-italic/Roboto-italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-italic/Roboto-italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-italic/Roboto-italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-italic/Roboto-italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-italic/Roboto-italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.eot');
|
src: url('/assets/fonts/Roboto-500italic/Roboto-500italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-500italic/Roboto-500italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Medium Italic'),
|
local('Roboto Medium Italic'),
|
||||||
local('Roboto-500italic'),
|
local('Roboto-500italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-500italic/Roboto-500italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-500italic/Roboto-500italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Roboto';
|
font-family: 'Roboto';
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
src: url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.eot');
|
src: url('/assets/fonts/Roboto-700italic/Roboto-700italic.eot');
|
||||||
src: url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.eot?#iefix') format('embedded-opentype'),
|
src: url('/assets/fonts/Roboto-700italic/Roboto-700italic.eot?#iefix') format('embedded-opentype'),
|
||||||
local('Roboto Bold Italic'),
|
local('Roboto Bold Italic'),
|
||||||
local('Roboto-700italic'),
|
local('Roboto-700italic'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.woff2') format('woff2'),
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.woff2') format('woff2'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.woff') format('woff'),
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.woff') format('woff'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.ttf') format('truetype'),
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.ttf') format('truetype'),
|
||||||
url('/assets/vendor/fonts/Roboto-700italic/Roboto-700italic.svg#Roboto') format('svg');
|
url('/assets/fonts/Roboto-700italic/Roboto-700italic.svg#Roboto') format('svg');
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,27 +109,8 @@ func init() {
|
||||||
PIDFile: true,
|
PIDFile: true,
|
||||||
RestartOnFail: true,
|
RestartOnFail: true,
|
||||||
},
|
},
|
||||||
|
app2Options,
|
||||||
})
|
})
|
||||||
|
|
||||||
if onWindows {
|
|
||||||
registerComponent([]Options{
|
|
||||||
{
|
|
||||||
Name: "Portmaster App2",
|
|
||||||
Identifier: "app2/portmaster-app.zip",
|
|
||||||
AllowDownload: false,
|
|
||||||
AllowHidingWindow: false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
registerComponent([]Options{
|
|
||||||
{
|
|
||||||
Name: "Portmaster App2",
|
|
||||||
Identifier: "app2/portmaster-app",
|
|
||||||
AllowDownload: false,
|
|
||||||
AllowHidingWindow: false,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func registerComponent(opts []Options) {
|
func registerComponent(opts []Options) {
|
||||||
|
@ -352,12 +333,13 @@ func persistOutputStreams(opts *Options, version string, cmd *exec.Cmd) (chan st
|
||||||
}
|
}
|
||||||
|
|
||||||
func execute(opts *Options, args []string) (cont bool, err error) {
|
func execute(opts *Options, args []string) (cont bool, err error) {
|
||||||
if !forceOldUI && registry.UsePreReleases && opts.ShortIdentifier == "app" {
|
// Auto-upgrade to new UI if in beta and new UI is not disabled or failed.
|
||||||
// Check if new ui was already tried.
|
if opts.ShortIdentifier == "app" &&
|
||||||
if !fallBackToOldUI {
|
registry.UsePreReleases &&
|
||||||
opts = &app2Options
|
!forceOldUI &&
|
||||||
log.Println("Using new UI")
|
!fallBackToOldUI {
|
||||||
}
|
log.Println("auto-upgraded to new UI")
|
||||||
|
opts = &app2Options
|
||||||
}
|
}
|
||||||
|
|
||||||
file, err := registry.GetFile(
|
file, err := registry.GetFile(
|
||||||
|
|
|
@ -16,14 +16,6 @@
|
||||||
Welcome back!
|
Welcome back!
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</span>
|
</span>
|
||||||
<span class="mt-2 text-xs font-light text-green-300">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor"
|
|
||||||
class="inline-block h-4 -mt-1 bi bi-caret-left-fill" viewBox="0 0 16 16">
|
|
||||||
<path
|
|
||||||
d="m3.86 8.753 5.482 4.796c.646.566 1.658.106 1.658-.753V3.204a1 1 0 0 0-1.659-.753l-5.48 4.796a1 1 0 0 0 0 1.506z" />
|
|
||||||
</svg>
|
|
||||||
New: Click shield to open dashboard
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="flex flex-row gap-8">
|
<div class="flex flex-row gap-8">
|
||||||
|
|
|
@ -60,9 +60,9 @@ if (document.addEventListener) {
|
||||||
|
|
||||||
let linkTag = document.createElement("link");
|
let linkTag = document.createElement("link");
|
||||||
linkTag.rel = "stylesheet";
|
linkTag.rel = "stylesheet";
|
||||||
linkTag.href = "/assets/vendor/fonts/roboto.css";
|
linkTag.href = "/assets/fonts/roboto.css";
|
||||||
if (navigator.platform.startsWith("Win")) {
|
if (navigator.platform.startsWith("Win")) {
|
||||||
linkTag.href = "/assets/vendor/fonts/roboto-slimfix.css"
|
linkTag.href = "/assets/fonts/roboto-slimfix.css"
|
||||||
}
|
}
|
||||||
|
|
||||||
document.head.appendChild(linkTag);
|
document.head.appendChild(linkTag);
|
||||||
|
|