mirror of
https://github.com/Suwayomi/Suwayomi-Server.git
synced 2026-07-04 03:14:40 -05:00
changes for the headless Tachidesk
This commit is contained in:
10
.github/workflows/build_pull_request.yml
vendored
10
.github/workflows/build_pull_request.yml
vendored
@@ -50,19 +50,13 @@ jobs:
|
|||||||
cd master
|
cd master
|
||||||
curl https://raw.githubusercontent.com/Suwayomi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar
|
curl https://raw.githubusercontent.com/Suwayomi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar
|
||||||
|
|
||||||
- name: Cache node_modules
|
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
**/webUI/node_modules
|
|
||||||
key: ${{ runner.os }}-${{ hashFiles('**/webUI/yarn.lock') }}
|
|
||||||
|
|
||||||
- name: Build and copy webUI, Build Jar
|
- name: Build Jar
|
||||||
uses: eskatos/gradle-command-action@v1
|
uses: eskatos/gradle-command-action@v1
|
||||||
with:
|
with:
|
||||||
build-root-directory: master
|
build-root-directory: master
|
||||||
wrapper-directory: master
|
wrapper-directory: master
|
||||||
arguments: :webUI:copyBuild :server:shadowJar --stacktrace
|
arguments: :server:shadowJar --stacktrace
|
||||||
wrapper-cache-enabled: true
|
wrapper-cache-enabled: true
|
||||||
dependencies-cache-enabled: true
|
dependencies-cache-enabled: true
|
||||||
configuration-cache-enabled: true
|
configuration-cache-enabled: true
|
||||||
11
.github/workflows/build_push.yml
vendored
11
.github/workflows/build_push.yml
vendored
@@ -52,21 +52,14 @@ jobs:
|
|||||||
cd master
|
cd master
|
||||||
curl https://raw.githubusercontent.com/Suwayomi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar
|
curl https://raw.githubusercontent.com/Suwayomi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar
|
||||||
|
|
||||||
- name: Cache node_modules
|
- name: Build Jar
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
**/webUI/node_modules
|
|
||||||
key: ${{ runner.os }}-${{ hashFiles('**/webUI/yarn.lock') }}
|
|
||||||
|
|
||||||
- name: Build and copy webUI, Build Jar
|
|
||||||
uses: eskatos/gradle-command-action@v1
|
uses: eskatos/gradle-command-action@v1
|
||||||
env:
|
env:
|
||||||
ProductBuildType: "Preview"
|
ProductBuildType: "Preview"
|
||||||
with:
|
with:
|
||||||
build-root-directory: master
|
build-root-directory: master
|
||||||
wrapper-directory: master
|
wrapper-directory: master
|
||||||
arguments: :webUI:copyBuild :server:shadowJar --stacktrace
|
arguments: :server:shadowJar --stacktrace
|
||||||
wrapper-cache-enabled: true
|
wrapper-cache-enabled: true
|
||||||
dependencies-cache-enabled: true
|
dependencies-cache-enabled: true
|
||||||
configuration-cache-enabled: true
|
configuration-cache-enabled: true
|
||||||
|
|||||||
13
.github/workflows/publish.yml
vendored
13
.github/workflows/publish.yml
vendored
@@ -51,21 +51,14 @@ jobs:
|
|||||||
cd master
|
cd master
|
||||||
curl https://raw.githubusercontent.com/Suwayomi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar
|
curl https://raw.githubusercontent.com/Suwayomi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar
|
||||||
|
|
||||||
- name: Cache node_modules
|
- name: Build Jar
|
||||||
uses: actions/cache@v2
|
|
||||||
with:
|
|
||||||
path: |
|
|
||||||
**/webUI/node_modules
|
|
||||||
key: ${{ runner.os }}-${{ hashFiles('**/webUI/yarn.lock') }}
|
|
||||||
|
|
||||||
- name: Build and copy webUI, Build Jar
|
|
||||||
uses: eskatos/gradle-command-action@v1
|
uses: eskatos/gradle-command-action@v1
|
||||||
env:
|
env:
|
||||||
ProductBuildType: "Stable"
|
ProductBuildType: "Stable"
|
||||||
with:
|
with:
|
||||||
build-root-directory: master
|
build-root-directory: master
|
||||||
wrapper-directory: master
|
wrapper-directory: master
|
||||||
arguments: :webUI:copyBuild :server:shadowJar --stacktrace
|
arguments: :server:shadowJar --stacktrace
|
||||||
wrapper-cache-enabled: true
|
wrapper-cache-enabled: true
|
||||||
dependencies-cache-enabled: true
|
dependencies-cache-enabled: true
|
||||||
configuration-cache-enabled: true
|
configuration-cache-enabled: true
|
||||||
@@ -81,7 +74,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
file: "master/server/build/*.jar;master/server/build/*.zip"
|
file: "master/server/build/*.jar"
|
||||||
tags: true
|
tags: true
|
||||||
draft: true
|
draft: true
|
||||||
verbose: true
|
verbose: true
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
jre\bin\javaw "-Dsuwayomi.tachidesk.server.webInterface=electron" "-Dsuwayomi.tachidesk.server.electronPath=electron/electron.exe" -jar Tachidesk.jar
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
system("start jre\\bin\\javaw -jar Tachidesk.jar");
|
|
||||||
}
|
|
||||||
@@ -6,16 +6,12 @@
|
|||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
electron_version="v12.0.9"
|
|
||||||
|
|
||||||
if [ $1 = "win32" ]; then
|
if [ $1 = "win32" ]; then
|
||||||
jre="OpenJDK8U-jre_x86-32_windows_hotspot_8u292b10.zip"
|
jre="OpenJDK8U-jre_x86-32_windows_hotspot_8u292b10.zip"
|
||||||
arch="win32"
|
arch="win32"
|
||||||
electron="electron-$electron_version-win32-ia32.zip"
|
|
||||||
else
|
else
|
||||||
jre="OpenJDK8U-jre_x64_windows_hotspot_8u292b10.zip"
|
jre="OpenJDK8U-jre_x64_windows_hotspot_8u292b10.zip"
|
||||||
arch="win64"
|
arch="win64"
|
||||||
electron="electron-$electron_version-win32-x64.zip"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
jre_dir="jdk8u292-b10-jre"
|
jre_dir="jdk8u292-b10-jre"
|
||||||
@@ -38,37 +34,10 @@ fi
|
|||||||
unzip $jre
|
unzip $jre
|
||||||
mv $jre_dir $release_name/jre
|
mv $jre_dir $release_name/jre
|
||||||
|
|
||||||
echo "Dealing with electron"
|
|
||||||
if [ ! -f $electron ]; then
|
|
||||||
curl -L "https://github.com/electron/electron/releases/download/$electron_version/$electron" -o $electron
|
|
||||||
fi
|
|
||||||
unzip $electron -d $release_name/electron
|
|
||||||
|
|
||||||
# change electron's icon
|
|
||||||
rcedit="rcedit-x86.exe"
|
|
||||||
if [ ! -f $rcedit ]; then
|
|
||||||
curl -L "https://github.com/electron/rcedit/releases/download/v1.1.1/$rcedit" -o $rcedit
|
|
||||||
fi
|
|
||||||
|
|
||||||
# check if running under github actions
|
|
||||||
if [ $CI = true ]; then
|
|
||||||
# change electron executable's icon
|
|
||||||
sudo dpkg --add-architecture i386
|
|
||||||
wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add -
|
|
||||||
sudo add-apt-repository ppa:cybermax-dexter/sdl2-backport
|
|
||||||
sudo apt-add-repository "deb https://dl.winehq.org/wine-builds/ubuntu $(lsb_release -cs) main"
|
|
||||||
sudo apt install --install-recommends winehq-stable
|
|
||||||
fi
|
|
||||||
# this script assumes that wine is installed here on out
|
|
||||||
|
|
||||||
WINEARCH=win32 wine $rcedit $release_name/electron/electron.exe --set-icon ../server/src/main/resources/icon/faviconlogo.ico
|
|
||||||
|
|
||||||
# copy artifacts
|
# copy artifacts
|
||||||
cp $jar $release_name/Tachidesk.jar
|
cp $jar $release_name/Tachidesk.jar
|
||||||
#cp "resources/Tachidesk Launcher-$arch.exe" "$release_name/Tachidesk Launcher.exe"
|
cp "resources/Tachidesk Launcher.bat" $release_name
|
||||||
cp "resources/Tachidesk Browser Launcher.bat" $release_name
|
|
||||||
cp "resources/Tachidesk Debug Launcher.bat" $release_name
|
cp "resources/Tachidesk Debug Launcher.bat" $release_name
|
||||||
cp "resources/Tachidesk Electron Launcher.bat" $release_name
|
|
||||||
|
|
||||||
zip_name=$release_name.zip
|
zip_name=$release_name.zip
|
||||||
zip -9 -r $zip_name $release_name
|
zip -9 -r $zip_name $release_name
|
||||||
|
|||||||
@@ -172,7 +172,6 @@ tasks {
|
|||||||
|
|
||||||
named<Copy>("processResources") {
|
named<Copy>("processResources") {
|
||||||
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
duplicatesStrategy = DuplicatesStrategy.INCLUDE
|
||||||
mustRunAfter(":webUI:copyBuild")
|
|
||||||
}
|
}
|
||||||
|
|
||||||
withType<LintTask> {
|
withType<LintTask> {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import mu.KotlinLogging
|
|||||||
import suwayomi.tachidesk.anime.AnimeAPI
|
import suwayomi.tachidesk.anime.AnimeAPI
|
||||||
import suwayomi.tachidesk.global.GlobalAPI
|
import suwayomi.tachidesk.global.GlobalAPI
|
||||||
import suwayomi.tachidesk.manga.MangaAPI
|
import suwayomi.tachidesk.manga.MangaAPI
|
||||||
import suwayomi.tachidesk.server.util.Browser
|
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import java.util.concurrent.CompletableFuture
|
import java.util.concurrent.CompletableFuture
|
||||||
import kotlin.concurrent.thread
|
import kotlin.concurrent.thread
|
||||||
@@ -31,28 +30,8 @@ object JavalinSetup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun javalinSetup() {
|
fun javalinSetup() {
|
||||||
var hasWebUiBundled = false
|
|
||||||
|
|
||||||
val app = Javalin.create { config ->
|
val app = Javalin.create { config ->
|
||||||
try {
|
|
||||||
// if the bellow line throws an exception then webUI is not bundled
|
|
||||||
this::class.java.getResource("/webUI/index.html")
|
|
||||||
|
|
||||||
// no exception so we can tell javalin to serve webUI
|
|
||||||
hasWebUiBundled = true
|
|
||||||
config.addStaticFiles("/webUI")
|
|
||||||
config.addSinglePageRoot("/", "/webUI/index.html")
|
|
||||||
} catch (e: RuntimeException) {
|
|
||||||
logger.warn("react build files are missing.")
|
|
||||||
hasWebUiBundled = false
|
|
||||||
}
|
|
||||||
config.enableCorsForAllOrigins()
|
config.enableCorsForAllOrigins()
|
||||||
}.events { event ->
|
|
||||||
event.serverStarted {
|
|
||||||
if (hasWebUiBundled && serverConfig.initialOpenInBrowserEnabled) {
|
|
||||||
Browser.openInBrowser()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}.start(serverConfig.ip, serverConfig.port)
|
}.start(serverConfig.ip, serverConfig.port)
|
||||||
|
|
||||||
// when JVM is prompted to shutdown, stop javalin gracefully
|
// when JVM is prompted to shutdown, stop javalin gracefully
|
||||||
|
|||||||
Reference in New Issue
Block a user