Use the Launcher

This commit is contained in:
Syer10
2023-07-27 18:24:29 -04:00
parent 6ac8f4c45d
commit a2fad83a19
21 changed files with 47 additions and 134 deletions

View File

@@ -38,6 +38,8 @@ main() {
trap "rm -rf $RELEASE_NAME/" RETURN trap "rm -rf $RELEASE_NAME/" RETURN
mkdir "$RELEASE_NAME/" mkdir "$RELEASE_NAME/"
download_launcher
case "$OS" in case "$OS" in
debian-all) debian-all)
RELEASE="$RELEASE_NAME.deb" RELEASE="$RELEASE_NAME.deb"
@@ -152,6 +154,12 @@ move_release_to_output_dir() {
mv "$RELEASE" "$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() { download_jre_and_electron() {
if [ ! -f "$JRE" ]; then if [ ! -f "$JRE" ]; then
curl -L "$JRE_URL" -o "$JRE" curl -L "$JRE_URL" -o "$JRE"
@@ -175,29 +183,23 @@ copy_linux_package_assets_to() {
local output_dir local output_dir
output_dir="$(readlink -e "$1" || exit 1)" output_dir="$(readlink -e "$1" || exit 1)"
cp "scripts/resources/pkg/tachidesk-server-browser-launcher.sh" "$output_dir/" cp "scripts/resources/pkg/tachidesk-launcher.sh" "$output_dir/"
cp "scripts/resources/pkg/tachidesk-server-debug-launcher.sh" "$output_dir/" cp "scripts/resources/pkg/tachidesk-launcher.desktop" "$output_dir/"
cp "scripts/resources/pkg/tachidesk-server-electron-launcher.sh" "$output_dir/"
cp "scripts/resources/pkg/tachidesk-server.desktop" "$output_dir/"
cp "scripts/resources/pkg/systemd"/* "$output_dir/" cp "scripts/resources/pkg/systemd"/* "$output_dir/"
cp "server/src/main/resources/icon/faviconlogo.png" \ cp "server/src/main/resources/icon/faviconlogo.png" \
"$output_dir/tachidesk-server.png" "$output_dir/tachidesk-server.png"
} }
make_linux_bundle() { make_linux_bundle() {
cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar" cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar"
cp "scripts/resources/tachidesk-server-browser-launcher.sh" "$RELEASE_NAME/" cp "scripts/resources/tachidesk-launcher.sh" "$RELEASE_NAME/"
cp "scripts/resources/tachidesk-server-debug-launcher.sh" "$RELEASE_NAME/"
cp "scripts/resources/tachidesk-server-electron-launcher.sh" "$RELEASE_NAME/"
tar -I "gzip -9" -cvf "$RELEASE" "$RELEASE_NAME/" tar -I "gzip -9" -cvf "$RELEASE" "$RELEASE_NAME/"
} }
make_macos_bundle() { make_macos_bundle() {
cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar" cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar"
cp "scripts/resources/Tachidesk Browser Launcher.command" "$RELEASE_NAME/" cp "scripts/resources/Tachidesk Launcher.command" "$RELEASE_NAME/"
cp "scripts/resources/Tachidesk Debug Launcher.command" "$RELEASE_NAME/"
cp "scripts/resources/Tachidesk Electron Launcher.command" "$RELEASE_NAME/"
zip -9 -r "$RELEASE" "$RELEASE_NAME/" zip -9 -r "$RELEASE" "$RELEASE_NAME/"
} }
@@ -257,10 +259,8 @@ make_windows_bundle() {
#WINEARCH=win32 wine "$rcedit" "$RELEASE_NAME/electron/electron.exe" \ #WINEARCH=win32 wine "$rcedit" "$RELEASE_NAME/electron/electron.exe" \
# --set-icon "$icon" # --set-icon "$icon"
cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar" cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar"
cp "scripts/resources/Tachidesk Browser Launcher.bat" "$RELEASE_NAME" cp "scripts/resources/Tachidesk Launcher.bat" "$RELEASE_NAME"
cp "scripts/resources/Tachidesk Debug Launcher.bat" "$RELEASE_NAME"
cp "scripts/resources/Tachidesk Electron Launcher.bat" "$RELEASE_NAME"
zip -9 -r "$RELEASE" "$RELEASE_NAME" zip -9 -r "$RELEASE" "$RELEASE_NAME"
} }

View File

@@ -1 +0,0 @@
start "" jre/bin/javaw -jar Tachidesk-Server.jar

View File

@@ -1,3 +0,0 @@
cd "`dirname "$0"`"
./jre/Contents/Home/bin/java -jar Tachidesk-Server.jar

View File

@@ -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

View File

@@ -1,3 +0,0 @@
cd "`dirname "$0"`"
./jre/Contents/Home/bin/java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar Tachidesk-Server.jar

View File

@@ -1 +0,0 @@
jre\bin\javaw "-Dsuwayomi.tachidesk.config.server.webUIInterface=electron" "-Dsuwayomi.tachidesk.config.server.electronPath=electron/electron.exe" -jar Tachidesk-Server.jar

View File

@@ -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

View File

@@ -0,0 +1 @@
start "" jre/bin/javaw -jar Tachidesk-Launcher.jar

View File

@@ -0,0 +1,3 @@
cd "`dirname "$0"`"
./jre/Contents/Home/bin/java -jar Tachidesk-Launcher.jar

View File

@@ -1,12 +1,11 @@
#!/usr/bin/dh-exec #!/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.png usr/share/pixmaps/
tachidesk-server.desktop usr/share/applications/ tachidesk-server.desktop usr/share/applications/
tachidesk-server.service usr/lib/systemd/system/ tachidesk-server.service usr/lib/systemd/system/
tachidesk-server.sysusers => usr/lib/sysusers.d/tachidesk-server.conf tachidesk-server.sysusers => usr/lib/sysusers.d/tachidesk-server.conf
tachidesk-server.tmpfiles => usr/lib/tmpfiles.d/tachidesk-server.conf tachidesk-server.tmpfiles => usr/lib/tmpfiles.d/tachidesk-server.conf
tachidesk-server.conf => etc/tachidesk/server.conf tachidesk-server.conf => etc/tachidesk/server.conf
tachidesk-server-browser-launcher.sh => usr/bin/tachidesk-server-browser tachidesk-launcher.sh => usr/bin/tachidesk-launcher
tachidesk-server-debug-launcher.sh => usr/bin/tachidesk-server-debug
tachidesk-server-electron-launcher.sh => usr/bin/tachidesk-server-electron

View File

@@ -15,6 +15,7 @@
<Directory Id="INSTALLDIR" Name="Tachidesk-Server" > <Directory Id="INSTALLDIR" Name="Tachidesk-Server" >
<Directory Id="jre"/> <Directory Id="jre"/>
<Directory Id="electron"/> <Directory Id="electron"/>
<Directory Id="bin"/>
</Directory> </Directory>
</Directory> </Directory>
<Directory Id="ProgramMenuFolder"> <Directory Id="ProgramMenuFolder">
@@ -31,53 +32,30 @@
<!-- Component --> <!-- Component -->
<DirectoryRef Id="INSTALLDIR"> <DirectoryRef Id="INSTALLDIR">
<Component Id="TachideskJAR" Guid="*" Win64="yes"> <Component Id="TachideskJAR" Guid="*" Win64="yes">
<File Id="Tachidesk-Server.jar" Source="$(var.SourceDir)/Tachidesk-Server.jar" KeyPath="yes" /> <File Id="Tachidesk-Launcher.jar" Source="$(var.SourceDir)/Tachidesk-Launcher.jar" KeyPath="yes" />
</Component> </Component>
<Component Id="TachideskBrowserBAT" Guid="*" Win64="yes"> <Component Id="TachideskLauncherBAT" Guid="*" Win64="yes">
<File Id="TachideskBrowser.bat" Source="$(var.SourceDir)/Tachidesk Browser Launcher.bat" KeyPath="yes" > <File Id="TachideskLauncher.bat" Source="$(var.SourceDir)/Tachidesk Launcher.bat" KeyPath="yes" >
<Shortcut Id="TachideskBrowser.lnk" Name="Tachidesk Browser" Directory="INSTALLDIR" <Shortcut Id="TachideskLauncher.lnk" Name="Tachidesk Launcher" Directory="INSTALLDIR"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" /> WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="DesktopTachideskBrowser.lnk" Name="Tachidesk Browser" Directory="DesktopFolder" <Shortcut Id="DesktopTachideskLauncher.lnk" Name="Tachidesk Launcher" Directory="DesktopFolder"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" /> WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="ProgramMenuTachideskBrowser.lnk" Name="Tachidesk Browser" Directory="ProgramMenuDir" <Shortcut Id="ProgramMenuTachideskLauncher.lnk" Name="Tachidesk Launcher" Directory="ProgramMenuDir"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes"
Description="A free and open source manga reader that runs extensions built for Tachiyomi." /> Description="A free and open source manga reader that runs extensions built for Tachiyomi." />
</File> </File>
</Component> </Component>
<Component Id="TachideskDebugBAT" Guid="*" Win64="yes">
<File Id="TachideskDebug.bat" Source="$(var.SourceDir)/Tachidesk Debug Launcher.bat" KeyPath="yes">
<Shortcut Id="TachideskDebug.lnk" Name="Tachidesk Debug" Directory="INSTALLDIR"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="ProgramMenuTachideskDebug.lnk" Name="Tachidesk Debug" Directory="ProgramMenuDir"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes"
Description="Launches Tachidesk with debug logs attached. If Tachidesk doesn't work for you, running this can give you insight into why." />
</File>
</Component>
<Component Id="TachideskElectronBAT" Guid="*" Win64="yes">
<File Id="TachideskElectron.bat" Source="$(var.SourceDir)/Tachidesk Electron Launcher.bat" KeyPath="yes">
<Shortcut Id="TachideskElectron.lnk" Name="Tachidesk Electron" Directory="INSTALLDIR"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="DesktopTachideskElectron.lnk" Name="Tachidesk Electron" Directory="DesktopFolder"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="ProgramMenuTachideskElectron.lnk" Name="Tachidesk Electron" Directory="ProgramMenuDir"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes"
Description="Launches Tachidesk inside Electron as a desktop applicaton." />
</File>
</Component>
</DirectoryRef> </DirectoryRef>
<!-- Feature --> <!-- Feature -->
<Feature Id="Tachidesk_Server" Title="Tachidesk-Server" Level="1"> <Feature Id="Tachidesk_Server" Title="Tachidesk-Server" Level="1">
<ComponentGroupRef Id="jre" /> <ComponentGroupRef Id="jre" />
<ComponentGroupRef Id="bin" />
<ComponentRef Id="TachideskJAR" /> <ComponentRef Id="TachideskJAR" />
<ComponentRef Id="TachideskBrowserBAT" /> <ComponentRef Id="TachideskLauncherBAT" />
<ComponentRef Id="TachideskDebugBAT" />
<ComponentRef Id="ProgramMenuDir" /> <ComponentRef Id="ProgramMenuDir" />
<ComponentGroupRef Id="electron" /> <ComponentGroupRef Id="electron" />
<ComponentRef Id="TachideskElectronBAT" />
</Feature> </Feature>
<Icon Id="Tachidesk.ico" SourceFile="$(var.Icon)" /> <Icon Id="Tachidesk.ico" SourceFile="$(var.Icon)" />

View File

@@ -11,6 +11,7 @@
<Directory Id="INSTALLDIR" Name="Tachidesk-Server" > <Directory Id="INSTALLDIR" Name="Tachidesk-Server" >
<Directory Id="jre"/> <Directory Id="jre"/>
<Directory Id="electron"/> <Directory Id="electron"/>
<Directory Id="bin"/>
</Directory> </Directory>
</Directory> </Directory>
<Directory Id="ProgramMenuFolder"> <Directory Id="ProgramMenuFolder">
@@ -27,53 +28,30 @@
<!-- Component --> <!-- Component -->
<DirectoryRef Id="INSTALLDIR"> <DirectoryRef Id="INSTALLDIR">
<Component Id="TachideskJAR" Guid="*"> <Component Id="TachideskJAR" Guid="*">
<File Id="Tachidesk-Server.jar" Source="$(var.SourceDir)/Tachidesk-Server.jar" KeyPath="yes" /> <File Id="Tachidesk-Launcher.jar" Source="$(var.SourceDir)/Tachidesk-Launcher.jar" KeyPath="yes" />
</Component> </Component>
<Component Id="TachideskBrowserBAT" Guid="*"> <Component Id="TachideskLauncherBAT" Guid="*" Win64="yes">
<File Id="TachideskBrowser.bat" Source="$(var.SourceDir)/Tachidesk Browser Launcher.bat" KeyPath="yes" > <File Id="TachideskLauncher.bat" Source="$(var.SourceDir)/Tachidesk Launcher.bat" KeyPath="yes" >
<Shortcut Id="TachideskBrowser.lnk" Name="Tachidesk Browser" Directory="INSTALLDIR" <Shortcut Id="TachideskLauncher.lnk" Name="Tachidesk Launcher" Directory="INSTALLDIR"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" /> WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="DesktopTachideskBrowser.lnk" Name="Tachidesk Browser" Directory="DesktopFolder" <Shortcut Id="DesktopTachideskLauncher.lnk" Name="Tachidesk Launcher" Directory="DesktopFolder"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" /> WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="ProgramMenuTachideskBrowser.lnk" Name="Tachidesk Browser" Directory="ProgramMenuDir" <Shortcut Id="ProgramMenuTachideskLauncher.lnk" Name="Tachidesk Launcher" Directory="ProgramMenuDir"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes"
Description="A free and open source manga reader that runs extensions built for Tachiyomi." /> Description="A free and open source manga reader that runs extensions built for Tachiyomi." />
</File> </File>
</Component> </Component>
<Component Id="TachideskDebugBAT" Guid="*">
<File Id="TachideskDebug.bat" Source="$(var.SourceDir)/Tachidesk Debug Launcher.bat" KeyPath="yes">
<Shortcut Id="TachideskDebug.lnk" Name="Tachidesk Debug" Directory="INSTALLDIR"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="ProgramMenuTachideskDebug.lnk" Name="Tachidesk Debug" Directory="ProgramMenuDir"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes"
Description="Launches Tachidesk with debug logs attached. If Tachidesk doesn't work for you, running this can give you insight into why." />
</File>
</Component>
<Component Id="TachideskElectronBAT" Guid="*">
<File Id="TachideskElectron.bat" Source="$(var.SourceDir)/Tachidesk Electron Launcher.bat" KeyPath="yes">
<Shortcut Id="TachideskElectron.lnk" Name="Tachidesk Electron" Directory="INSTALLDIR"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="DesktopTachideskElectron.lnk" Name="Tachidesk Electron" Directory="DesktopFolder"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes" />
<Shortcut Id="ProgramMenuTachideskElectron.lnk" Name="Tachidesk Electron" Directory="ProgramMenuDir"
WorkingDirectory="INSTALLDIR" Icon="Tachidesk.ico" IconIndex="0" Advertise="yes"
Description="Launches Tachidesk inside Electron as a desktop applicaton." />
</File>
</Component>
</DirectoryRef> </DirectoryRef>
<!-- Feature --> <!-- Feature -->
<Feature Id="Tachidesk_Server" Title="Tachidesk-Server" Level="1"> <Feature Id="Tachidesk_Server" Title="Tachidesk-Server" Level="1">
<ComponentGroupRef Id="jre" /> <ComponentGroupRef Id="jre" />
<ComponentGroupRef Id="bin" />
<ComponentRef Id="TachideskJAR" /> <ComponentRef Id="TachideskJAR" />
<ComponentRef Id="TachideskBrowserBAT" /> <ComponentRef Id="TachideskLauncherBAT" />
<ComponentRef Id="TachideskDebugBAT" />
<ComponentRef Id="ProgramMenuDir" /> <ComponentRef Id="ProgramMenuDir" />
<ComponentGroupRef Id="electron" /> <ComponentGroupRef Id="electron" />
<ComponentRef Id="TachideskElectronBAT" />
</Feature> </Feature>
<Icon Id="Tachidesk.ico" SourceFile="$(var.Icon)" /> <Icon Id="Tachidesk.ico" SourceFile="$(var.Icon)" />

View File

@@ -10,7 +10,7 @@ Group=tachidesk
SyslogIdentifier=tachidesk SyslogIdentifier=tachidesk
EnvironmentFile=/etc/tachidesk/server.conf EnvironmentFile=/etc/tachidesk/server.conf
ExecStart=/usr/bin/java $JAVA_ARGS -Dsuwayomi.tachidesk.config.server.rootDir="${TACHIDESK_ROOT_DIR}" -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar ExecStart=/usr/bin/java $JAVA_ARGS -Dsuwayomi.tachidesk.config.server.rootDir="${TACHIDESK_ROOT_DIR}" -jar /usr/share/java/tachidesk-server/bin/Tachidesk-Server.jar
Restart=on-failure Restart=on-failure
ProtectSystem=full ProtectSystem=full

View File

@@ -2,7 +2,7 @@
Type=Application Type=Application
Name=Tachidesk-Server Name=Tachidesk-Server
Comment=Manga Reader Comment=Manga Reader
Exec=/usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar "\\$@" Exec=/usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Launcher.jar "\\$@"
Icon=tachidesk-server Icon=tachidesk-server
Terminal=false Terminal=false
Categories=Network; Categories=Network;

View File

@@ -1,3 +1,3 @@
#!/bin/sh #!/bin/sh
exec /usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar exec /usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Launcher.jar

View File

@@ -1,5 +0,0 @@
#!/bin/sh
exec /usr/bin/java \
-Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true \
-jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar

View File

@@ -1,12 +0,0 @@
#!/bin/sh
if [ ! -f /usr/bin/electron ]; then
echo "Electron executable was not found!
In order to run this launcher, you need Electron installed."
exit 1
fi
exec /usr/bin/java \
-Dsuwayomi.tachidesk.config.server.webUIInterface=electron \
-Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron \
-jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar

View File

@@ -0,0 +1,3 @@
#!/bin/sh
exec ./jre/bin/java -jar ./Tachidesk-Launcher.jar

View File

@@ -1,3 +0,0 @@
#!/bin/sh
exec ./jre/bin/java -jar ./Tachidesk-Server.jar

View File

@@ -1,5 +0,0 @@
#!/bin/sh
exec ./jre/bin/java \
-Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true \
-jar ./Tachidesk-Server.jar

View File

@@ -1,6 +0,0 @@
#!/bin/sh
exec ./jre/bin/java \
-Dsuwayomi.tachidesk.config.server.webUIInterface=electron \
-Dsuwayomi.tachidesk.config.server.electronPath=./electron/electron \
-jar ./Tachidesk-Server.jar