diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index ba911764..d7b80fcf 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -6,7 +6,7 @@ okhttp = "5.0.0-alpha.11" # Major version is locked by Tachiyomi extensions
javalin = "4.6.6" # Javalin 5.0.0+ requires Java 11
jackson = "2.13.3" # jackson version locked by javalin, ref: `io.javalin.core.util.OptionalDependency`
exposed = "0.40.1"
-dex2jar = "v61"
+dex2jar = "v64"
rhino = "1.7.14"
settings = "1.0.0-RC"
twelvemonkeys = "3.9.4"
diff --git a/scripts/bundler.sh b/scripts/bundler.sh
index 952f65c6..0aad09d6 100755
--- a/scripts/bundler.sh
+++ b/scripts/bundler.sh
@@ -38,6 +38,8 @@ main() {
trap "rm -rf $RELEASE_NAME/" RETURN
mkdir "$RELEASE_NAME/"
+ download_launcher
+
case "$OS" in
debian-all)
RELEASE="$RELEASE_NAME.deb"
@@ -152,6 +154,12 @@ move_release_to_output_dir() {
mv "$RELEASE" "$OUTPUT_DIR/"
}
+download_launcher() {
+ LAUNCHER_URL=$(curl -s "https://api.github.com/repos/Suwayomi/Tachidesk-Launcher/releases/latest" | grep "browser_download_url" | grep ".jar" | head -n 1 | cut -d '"' -f 4)
+ curl -L "$LAUNCHER_URL" -o "Tachidesk-Launcher.jar"
+ mv "Tachidesk-Launcher.jar" "$RELEASE_NAME/Tachidesk-Launcher.jar"
+}
+
download_jre_and_electron() {
if [ ! -f "$JRE" ]; then
curl -L "$JRE_URL" -o "$JRE"
@@ -175,29 +183,26 @@ copy_linux_package_assets_to() {
local output_dir
output_dir="$(readlink -e "$1" || exit 1)"
- cp "scripts/resources/pkg/tachidesk-server-browser-launcher.sh" "$output_dir/"
- cp "scripts/resources/pkg/tachidesk-server-debug-launcher.sh" "$output_dir/"
- cp "scripts/resources/pkg/tachidesk-server-electron-launcher.sh" "$output_dir/"
+ cp "scripts/resources/pkg/tachidesk-server.sh" "$output_dir/"
cp "scripts/resources/pkg/tachidesk-server.desktop" "$output_dir/"
+ cp "scripts/resources/pkg/tachidesk-launcher.sh" "$output_dir/"
+ cp "scripts/resources/pkg/tachidesk-launcher.desktop" "$output_dir/"
cp "scripts/resources/pkg/systemd"/* "$output_dir/"
cp "server/src/main/resources/icon/faviconlogo.png" \
"$output_dir/tachidesk-server.png"
}
make_linux_bundle() {
- cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar"
- cp "scripts/resources/tachidesk-server-browser-launcher.sh" "$RELEASE_NAME/"
- cp "scripts/resources/tachidesk-server-debug-launcher.sh" "$RELEASE_NAME/"
- cp "scripts/resources/tachidesk-server-electron-launcher.sh" "$RELEASE_NAME/"
+ cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar"
+ cp "scripts/resources/tachidesk-launcher.sh" "$RELEASE_NAME/"
+ cp "scripts/resources/tachidesk-server.sh" "$RELEASE_NAME/"
tar -I "gzip -9" -cvf "$RELEASE" "$RELEASE_NAME/"
}
make_macos_bundle() {
- cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar"
- cp "scripts/resources/Tachidesk Browser Launcher.command" "$RELEASE_NAME/"
- cp "scripts/resources/Tachidesk Debug Launcher.command" "$RELEASE_NAME/"
- cp "scripts/resources/Tachidesk Electron Launcher.command" "$RELEASE_NAME/"
+ cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar"
+ cp "scripts/resources/Tachidesk Launcher.command" "$RELEASE_NAME/"
zip -9 -r "$RELEASE" "$RELEASE_NAME/"
}
@@ -211,6 +216,7 @@ make_deb_package() {
local upstream_source="tachidesk-server_$RELEASE_VERSION.orig.tar.gz"
mkdir "$RELEASE_NAME/$source_dir/"
+ mv "$RELEASE_NAME/Tachidesk-Launcher.jar" "$RELEASE_NAME/$source_dir/Tachidesk-Launcher.jar"
cp "$JAR" "$RELEASE_NAME/$source_dir/Tachidesk-Server.jar"
copy_linux_package_assets_to "$RELEASE_NAME/$source_dir/"
tar -I "gzip" -C "$RELEASE_NAME/" -cvf "$upstream_source" "$source_dir"
@@ -257,10 +263,8 @@ make_windows_bundle() {
#WINEARCH=win32 wine "$rcedit" "$RELEASE_NAME/electron/electron.exe" \
# --set-icon "$icon"
- cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar"
- cp "scripts/resources/Tachidesk Browser Launcher.bat" "$RELEASE_NAME"
- cp "scripts/resources/Tachidesk Debug Launcher.bat" "$RELEASE_NAME"
- cp "scripts/resources/Tachidesk Electron Launcher.bat" "$RELEASE_NAME"
+ cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar"
+ cp "scripts/resources/Tachidesk Launcher.bat" "$RELEASE_NAME"
zip -9 -r "$RELEASE" "$RELEASE_NAME"
}
@@ -277,12 +281,16 @@ make_windows_package() {
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
--directory-ref electron --component-group electron >"$RELEASE_NAME/electron.wxs"
+ find "$RELEASE_NAME/bin" \
+ | wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
+ --directory-ref bin --component-group bin >"$RELEASE_NAME/bin.wxs"
+
local icon="server/src/main/resources/icon/faviconlogo.ico"
local arch=${OS##*-}
wixl -D ProductVersion="$RELEASE_VERSION" -D SourceDir="$RELEASE_NAME" \
-D Icon="$icon" --arch "$arch" "scripts/resources/msi/tachidesk-server-$arch.wxs" \
- "$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" -o "$RELEASE"
+ "$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" "$RELEASE_NAME/bin.wxs" -o "$RELEASE"
}
setup_playwright() {
diff --git a/scripts/resources/Tachidesk Browser Launcher.bat b/scripts/resources/Tachidesk Browser Launcher.bat
deleted file mode 100644
index cf1d75ed..00000000
--- a/scripts/resources/Tachidesk Browser Launcher.bat
+++ /dev/null
@@ -1 +0,0 @@
-start "" jre/bin/javaw -jar Tachidesk-Server.jar
\ No newline at end of file
diff --git a/scripts/resources/Tachidesk Browser Launcher.command b/scripts/resources/Tachidesk Browser Launcher.command
deleted file mode 100755
index 2b7311fe..00000000
--- a/scripts/resources/Tachidesk Browser Launcher.command
+++ /dev/null
@@ -1,3 +0,0 @@
-cd "`dirname "$0"`"
-
-./jre/Contents/Home/bin/java -jar Tachidesk-Server.jar
\ No newline at end of file
diff --git a/scripts/resources/Tachidesk Debug Launcher.bat b/scripts/resources/Tachidesk Debug Launcher.bat
deleted file mode 100644
index 4e14e1dd..00000000
--- a/scripts/resources/Tachidesk Debug Launcher.bat
+++ /dev/null
@@ -1,7 +0,0 @@
-:: cleaner output
-@echo off
-
-jre\bin\java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar Tachidesk-Server.jar
-
-:: Prevent cmd from closing when Tachidesk crashes
-pause
\ No newline at end of file
diff --git a/scripts/resources/Tachidesk Debug Launcher.command b/scripts/resources/Tachidesk Debug Launcher.command
deleted file mode 100755
index f46456a3..00000000
--- a/scripts/resources/Tachidesk Debug Launcher.command
+++ /dev/null
@@ -1,3 +0,0 @@
-cd "`dirname "$0"`"
-
-./jre/Contents/Home/bin/java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar Tachidesk-Server.jar
diff --git a/scripts/resources/Tachidesk Electron Launcher.bat b/scripts/resources/Tachidesk Electron Launcher.bat
deleted file mode 100644
index 59e99041..00000000
--- a/scripts/resources/Tachidesk Electron Launcher.bat
+++ /dev/null
@@ -1 +0,0 @@
-jre\bin\javaw "-Dsuwayomi.tachidesk.config.server.webUIInterface=electron" "-Dsuwayomi.tachidesk.config.server.electronPath=electron/electron.exe" -jar Tachidesk-Server.jar
\ No newline at end of file
diff --git a/scripts/resources/Tachidesk Electron Launcher.command b/scripts/resources/Tachidesk Electron Launcher.command
deleted file mode 100755
index 98231819..00000000
--- a/scripts/resources/Tachidesk Electron Launcher.command
+++ /dev/null
@@ -1,3 +0,0 @@
-cd "`dirname "$0"`"
-
-./jre/Contents/Home/bin/java "-Dsuwayomi.tachidesk.config.server.webUIInterface=electron" "-Dsuwayomi.tachidesk.config.server.electronPath=electron/Electron.app/Contents/MacOS/Electron" -jar Tachidesk-Server.jar
\ No newline at end of file
diff --git a/scripts/resources/Tachidesk Launcher.bat b/scripts/resources/Tachidesk Launcher.bat
new file mode 100644
index 00000000..05e52cfb
--- /dev/null
+++ b/scripts/resources/Tachidesk Launcher.bat
@@ -0,0 +1 @@
+start "" jre/bin/javaw -jar Tachidesk-Launcher.jar
\ No newline at end of file
diff --git a/scripts/resources/Tachidesk Launcher.command b/scripts/resources/Tachidesk Launcher.command
new file mode 100644
index 00000000..dcd19680
--- /dev/null
+++ b/scripts/resources/Tachidesk Launcher.command
@@ -0,0 +1,3 @@
+cd "`dirname "$0"`"
+
+./jre/Contents/Home/bin/java -jar Tachidesk-Launcher.jar
\ No newline at end of file
diff --git a/scripts/resources/deb/control b/scripts/resources/deb/control
index 3ec79b3d..4668c392 100644
--- a/scripts/resources/deb/control
+++ b/scripts/resources/deb/control
@@ -8,7 +8,7 @@ Homepage: https://github.com/Suwayomi/Tachidesk-Server
Package: tachidesk-server
Architecture: all
-Depends: ${misc:Depends}, java8-runtime-headless, libc++-dev
+Depends: ${misc:Depends}, java8-runtime, libc++-dev
Description: Manga Reader
A free and open source manga reader server that runs extensions built for Tachiyomi.
Tachidesk is an independent Tachiyomi compatible software and is not a Fork of Tachiyomi.
diff --git a/scripts/resources/deb/install b/scripts/resources/deb/install
index b727cfff..b1640e3c 100755
--- a/scripts/resources/deb/install
+++ b/scripts/resources/deb/install
@@ -1,12 +1,13 @@
#!/usr/bin/dh-exec
-Tachidesk-Server.jar usr/share/java/tachidesk-server/
+Tachidesk-Server.jar usr/share/java/tachidesk-server/bin/
+Tachidesk-Launcher.jar usr/share/java/tachidesk-server/
tachidesk-server.png usr/share/pixmaps/
tachidesk-server.desktop usr/share/applications/
+tachidesk-launcher.desktop usr/share/applications/
tachidesk-server.service usr/lib/systemd/system/
tachidesk-server.sysusers => usr/lib/sysusers.d/tachidesk-server.conf
tachidesk-server.tmpfiles => usr/lib/tmpfiles.d/tachidesk-server.conf
tachidesk-server.conf => etc/tachidesk/server.conf
-tachidesk-server-browser-launcher.sh => usr/bin/tachidesk-server-browser
-tachidesk-server-debug-launcher.sh => usr/bin/tachidesk-server-debug
-tachidesk-server-electron-launcher.sh => usr/bin/tachidesk-server-electron
+tachidesk-server.sh => usr/bin/tachidesk-server
+tachidesk-launcher.sh => usr/bin/tachidesk-launcher
diff --git a/scripts/resources/msi/tachidesk-server-x64.wxs b/scripts/resources/msi/tachidesk-server-x64.wxs
index 50946925..3acad684 100755
--- a/scripts/resources/msi/tachidesk-server-x64.wxs
+++ b/scripts/resources/msi/tachidesk-server-x64.wxs
@@ -15,6 +15,7 @@
+