mirror of
https://github.com/Suwayomi/Tachidesk.git
synced 2025-12-23 04:52:35 +01:00
* Automate debian package building Move wxs files to scripts/resources/msi/ Define icon's path inside script instead of hardcoding it in wxs * Revert back Windows script improvments * Remove copyright year. Use uppercase for first letter of foruzesh * Seperate deb from tar code with defining new debian-x64 arch * Add ./unix-bundler.sh debian-x64 * Fix mistake * Remove unneeded change of license
116 lines
3.7 KiB
Bash
Executable File
116 lines
3.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Copyright (C) Contributors to the Suwayomi project
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# 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/.
|
|
|
|
electron_version="v14.0.0"
|
|
|
|
if [ $1 = "linux-x64" ] || [ $1 = "debian-x64" ]; then
|
|
jre="OpenJDK8U-jre_x64_linux_hotspot_8u302b08.tar.gz"
|
|
jre_release="jdk8u302-b08"
|
|
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
|
jre_dir="$jre_release-jre"
|
|
electron="electron-$electron_version-linux-x64.zip"
|
|
elif [ $1 = "macOS-x64" ]; then
|
|
jre="OpenJDK8U-jre_x64_mac_hotspot_8u302b08.tar.gz"
|
|
jre_release="jdk8u302-b08"
|
|
jre_url="https://github.com/adoptium/temurin8-binaries/releases/download/$jre_release/$jre"
|
|
jre_dir="$jre_release-jre"
|
|
electron="electron-$electron_version-darwin-x64.zip"
|
|
elif [ $1 = "macOS-arm64" ]; then
|
|
jre="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64.tar.gz"
|
|
jre_release="zulu8.56.0.23-ca-jre8.0.302-macosx_aarch64"
|
|
jre_url="https://cdn.azul.com/zulu/bin/$jre"
|
|
jre_dir="$jre_release/zulu-8.jre"
|
|
electron="electron-$electron_version-darwin-arm64.zip"
|
|
else
|
|
echo "Unsupported arch value: $1"
|
|
exit 1
|
|
fi
|
|
|
|
arch="$1"
|
|
os=$(echo $arch | cut -d '-' -f1)
|
|
|
|
echo "creating $arch bundle"
|
|
|
|
jar=$(ls ../server/build/*.jar | tail -n1)
|
|
jar_name=$(echo $jar | cut -d'/' -f4)
|
|
release_name=$(echo $jar_name | sed 's/.jar//')-$arch
|
|
|
|
# make release dir
|
|
mkdir $release_name
|
|
|
|
echo "Dealing with jre..."
|
|
if [ ! -f $jre ]; then
|
|
curl -L $jre_url -o $jre
|
|
fi
|
|
tar xvf $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
|
|
|
|
# copy artifacts
|
|
cp $jar $release_name/Tachidesk.jar
|
|
if [ $os = linux ] || [ $os = debian ]; then
|
|
cp "resources/tachidesk-browser-launcher.sh" $release_name
|
|
cp "resources/tachidesk-debug-launcher.sh" $release_name
|
|
cp "resources/tachidesk-electron-launcher.sh" $release_name
|
|
elif [ $os = macOS ]; then
|
|
cp "resources/Tachidesk Browser Launcher.command" $release_name
|
|
cp "resources/Tachidesk Debug Launcher.command" $release_name
|
|
cp "resources/Tachidesk Electron Launcher.command" $release_name
|
|
fi
|
|
|
|
archive_name=""
|
|
if [ $os = linux ]; then
|
|
archive_name=$release_name.tar.gz
|
|
GZIP=-9 tar cvzf $archive_name $release_name
|
|
elif [ $os = macOS ]; then
|
|
archive_name=$release_name.zip
|
|
zip -9 -r $archive_name $release_name
|
|
elif [ $os = debian ]; then
|
|
release_ver=$(tmp="${jar%-*}" && echo "${tmp##*-}" | tr -d v)
|
|
archive_name="tachidesk_$release_ver-1_amd64.deb"
|
|
orig_dir="tachidesk-$release_ver" # dir uses hyphen "-"
|
|
orig_tar_gz="tachidesk_$release_ver.orig.tar.gz" # orig file uses underscore "_"
|
|
icon="../server/src/main/resources/icon/faviconlogo.png"
|
|
|
|
# prepare required resources
|
|
mv "$release_name" "$orig_dir"
|
|
tar cvzf $orig_tar_gz $orig_dir
|
|
|
|
cp -r "resources/debian" "$orig_dir/"
|
|
cp "resources/tachidesk.desktop" "$orig_dir/debian/tachidesk.desktop"
|
|
cp "$icon" "$orig_dir/debian/tachidesk.png"
|
|
sed -i "s/\${version}/$release_ver/" "$orig_dir/debian/changelog"
|
|
|
|
# build deb package
|
|
mkdir -p "build"
|
|
mv $orig_dir $orig_tar_gz "build/"
|
|
cd "build/$orig_dir/debian"
|
|
sudo apt install devscripts build-essential dh-exec
|
|
debuild -uc -us
|
|
cd -
|
|
|
|
# clean up debuild outouts
|
|
mv "build/$archive_name" "./"
|
|
mv "build/$orig_dir" $release_name
|
|
rm -rf "build"
|
|
fi
|
|
|
|
rm -rf $release_name
|
|
|
|
# clean up from possible previous runs
|
|
if [ -f ../server/build/$archive_name ]; then
|
|
rm ../server/build/$archive_name
|
|
fi
|
|
|
|
mv $archive_name ../server/build/
|