mirror of
https://github.com/advplyr/audiobookshelf.git
synced 2026-11-13 12:23:34 +01:00
64 lines
1.5 KiB
Bash
Executable File
64 lines
1.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
set -o pipefail
|
|
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
|
|
cd "$SCRIPT_DIR/.."
|
|
|
|
# Get package version without double quotes
|
|
VERSION="$( eval echo $( jq '.version' package.json) )"
|
|
DESCRIPTION="$( eval echo $( jq '.description' package.json) )"
|
|
OUTPUT_FILE="audiobookshelf_${VERSION}_amd64.deb"
|
|
|
|
echo ">>> Building Client"
|
|
echo "--------------------"
|
|
|
|
cd client
|
|
rm -rf node_modules
|
|
npm ci
|
|
npm run generate
|
|
cd ..
|
|
|
|
echo ">>> Building Server"
|
|
echo "--------------------"
|
|
|
|
rm -rf node_modules
|
|
npm ci
|
|
npm run build:server
|
|
|
|
echo ">>> Packaging"
|
|
echo "--------------------"
|
|
|
|
# Create debian control file
|
|
|
|
mkdir -p dist
|
|
rm -rf dist/debian
|
|
cp -R build/debian dist/debian
|
|
|
|
controlfile="Package: audiobookshelf
|
|
Version: $VERSION
|
|
Section: base
|
|
Priority: optional
|
|
Architecture: amd64
|
|
Depends:
|
|
Maintainer: advplyr
|
|
Description: $DESCRIPTION"
|
|
|
|
echo "$controlfile" > dist/debian/DEBIAN/control;
|
|
|
|
# Package contents: directories 0755, files 0644 (including the systemd unit).
|
|
# Maintainer scripts must stay executable so dpkg can run them.
|
|
find dist/debian -type d -exec chmod 755 {} +
|
|
find dist/debian -type f -exec chmod 644 {} +
|
|
chmod 755 dist/debian/DEBIAN/preinst dist/debian/DEBIAN/postinst dist/debian/DEBIAN/prerm
|
|
|
|
# Package debian
|
|
pkg --config package.json -t node24-linux-x64 -o dist/debian/usr/share/audiobookshelf/audiobookshelf dist-server/index.js
|
|
|
|
fakeroot dpkg-deb -Zxz --build dist/debian
|
|
|
|
mv dist/debian.deb "dist/$OUTPUT_FILE"
|
|
|
|
echo "Finished! Filename: $OUTPUT_FILE"
|