perfin/scripts/package-linux-deb.sh

39 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
# Creates a native linux installer for Perfin, in the .deb format (for Ubuntu, Debian, etc.)
./mvnw clean package
function join_by {
local d=${1-} f=${2-}
if shift 2; then
printf %s "$f" "${@/#/$d}"
fi
}
# Fix because H2 is not modular:
rm target/lib/h2-*.jar
# Gets a ":"-separated string of all the dependency jar-files.
module_jar_files=(target/lib/*)
module_jar_files_path=$(join_by ":" ${module_jar_files[@]})
module_path="target/classes:$module_jar_files_path"
# Fix because H2 is not modular:
module_path="$module_path:target/modules/h2-2.2.224.jar"
jpackage \
--name "Perfin" \
--app-version "1.9.0" \
--description "Desktop application for personal finance. Add your accounts, track transactions, and store receipts, invoices, and more." \
--icon design/perfin-logo_256.png \
--vendor "Andrew Lalis" \
--about-url https://github.com/andrewlalis/perfin \
--module com.andrewlalis.perfin/com.andrewlalis.perfin.PerfinApp \
--module-path $module_path \
--add-modules com.h2database \
--type deb \
--linux-deb-maintainer "andrewlalisofficial@gmail.com" \
--linux-shortcut \
--linux-menu-group "Office;Finance;Java" \