update
Some checks failed
Pipeline: Test, Lint, Build / Get version info (push) Has been cancelled
Pipeline: Test, Lint, Build / Lint Go code (push) Has been cancelled
Pipeline: Test, Lint, Build / Test Go code (push) Has been cancelled
Pipeline: Test, Lint, Build / Test JS code (push) Has been cancelled
Pipeline: Test, Lint, Build / Lint i18n files (push) Has been cancelled
Pipeline: Test, Lint, Build / Check Docker configuration (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (darwin/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (darwin/arm64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/386) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v5) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v6) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v7) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (windows/386) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (windows/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Push to GHCR (push) Has been cancelled
Pipeline: Test, Lint, Build / Push to Docker Hub (push) Has been cancelled
Pipeline: Test, Lint, Build / Cleanup digest artifacts (push) Has been cancelled
Pipeline: Test, Lint, Build / Build Windows installers (push) Has been cancelled
Pipeline: Test, Lint, Build / Package/Release (push) Has been cancelled
Pipeline: Test, Lint, Build / Upload Linux PKG (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
POEditor import / update-translations (push) Has been cancelled
Some checks failed
Pipeline: Test, Lint, Build / Get version info (push) Has been cancelled
Pipeline: Test, Lint, Build / Lint Go code (push) Has been cancelled
Pipeline: Test, Lint, Build / Test Go code (push) Has been cancelled
Pipeline: Test, Lint, Build / Test JS code (push) Has been cancelled
Pipeline: Test, Lint, Build / Lint i18n files (push) Has been cancelled
Pipeline: Test, Lint, Build / Check Docker configuration (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (darwin/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (darwin/arm64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/386) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v5) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v6) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm/v7) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (linux/arm64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (windows/386) (push) Has been cancelled
Pipeline: Test, Lint, Build / Build (windows/amd64) (push) Has been cancelled
Pipeline: Test, Lint, Build / Push to GHCR (push) Has been cancelled
Pipeline: Test, Lint, Build / Push to Docker Hub (push) Has been cancelled
Pipeline: Test, Lint, Build / Cleanup digest artifacts (push) Has been cancelled
Pipeline: Test, Lint, Build / Build Windows installers (push) Has been cancelled
Pipeline: Test, Lint, Build / Package/Release (push) Has been cancelled
Pipeline: Test, Lint, Build / Upload Linux PKG (push) Has been cancelled
Close stale issues and PRs / stale (push) Has been cancelled
POEditor import / update-translations (push) Has been cancelled
This commit is contained in:
1
release/linux/.package.deb
Normal file
1
release/linux/.package.deb
Normal file
@@ -0,0 +1 @@
|
||||
deb
|
||||
1
release/linux/.package.rpm
Normal file
1
release/linux/.package.rpm
Normal file
@@ -0,0 +1 @@
|
||||
rpm
|
||||
2
release/linux/navidrome.toml
Normal file
2
release/linux/navidrome.toml
Normal file
@@ -0,0 +1,2 @@
|
||||
DataFolder = "/var/lib/navidrome"
|
||||
MusicFolder = "/opt/navidrome/music"
|
||||
28
release/linux/postinstall.sh
Normal file
28
release/linux/postinstall.sh
Normal file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
# It is possible for a user to delete the configuration file in such a way that
|
||||
# the package manager (in particular, deb) thinks that the file exists, while it is
|
||||
# no longer on disk. Specifically, doing a `rm /etc/navidrome/navidrome.toml`
|
||||
# without something like `apt purge navidrome` will result in the system believing that
|
||||
# the file still exists. In this case, during install it will NOT extract the configuration
|
||||
# file (as to not override it). Since `navidrome service install` depends on this file existing,
|
||||
# we will create it with the defaults anyway.
|
||||
if [ ! -f /etc/navidrome/navidrome.toml ]; then
|
||||
printf "No navidrome.toml detected, creating in postinstall\n"
|
||||
printf "DataFolder = \"/var/lib/navidrome\"\n" > /etc/navidrome/navidrome.toml
|
||||
printf "MusicFolder = \"/opt/navidrome/music\"\n" >> /etc/navidrome/navidrome.toml
|
||||
fi
|
||||
|
||||
postinstall_flag="/var/lib/navidrome/.installed"
|
||||
|
||||
if [ ! -f "$postinstall_flag" ]; then
|
||||
# The primary reason why this would fail is if the service was already installed AND
|
||||
# someone manually removed the .installed flag. In this case, ignore the error
|
||||
navidrome service install --user navidrome --working-directory /var/lib/navidrome --configfile /etc/navidrome/navidrome.toml || :
|
||||
# Any `navidrome` command will make a cache. Make sure that this is properly owned by the Navidrome user
|
||||
# and not by root
|
||||
chown navidrome:navidrome /var/lib/navidrome/cache
|
||||
touch "$postinstall_flag"
|
||||
fi
|
||||
|
||||
|
||||
6
release/linux/preinstall.sh
Executable file
6
release/linux/preinstall.sh
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
if ! getent passwd navidrome > /dev/null 2>&1; then
|
||||
printf "Creating default Navidrome user\n"
|
||||
useradd --home-dir /var/lib/navidrome --create-home --system --user-group navidrome
|
||||
fi
|
||||
30
release/linux/preremove.sh
Normal file
30
release/linux/preremove.sh
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
action=$1
|
||||
|
||||
remove() {
|
||||
postinstall_flag="/var/lib/navidrome/.installed"
|
||||
|
||||
if [ -f "$postinstall_flag" ]; then
|
||||
# If this fails, ignore it
|
||||
navidrome service uninstall || :
|
||||
rm "$postinstall_flag"
|
||||
|
||||
printf "The following may still be present (especially if you have not done a purge):\n"
|
||||
printf "1. /etc/navidrome/navidrome.toml (configuration file)\n"
|
||||
printf "2. /var/lib/navidrome (database/cache)\n"
|
||||
printf "3. /opt/navidrome (default location for music)\n"
|
||||
printf "4. The Navidrome user (user name navidrome)\n"
|
||||
fi
|
||||
}
|
||||
|
||||
case "$action" in
|
||||
"1" | "upgrade")
|
||||
# For an upgrade, do nothing
|
||||
# Leave the service file untouched
|
||||
# This is relevant for RPM/DEB-based installs
|
||||
;;
|
||||
*)
|
||||
remove
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user