build: add packages for deb and rpm to release (#3202)
* support packing deb/rpm/archlinux * .-. * initial test * fix postinstall, remove execstop * bash -> sh, create toml manually if it doesn't exist (thanks debian) * don't forget that newline * postrm * comments, contrib -> packaging/linux * contrib > packaging in .goreleaser * actually add toml * openrc/sysv templates * add apk. nothing else yet * wait, we have a ntive uninstall * fix: merge errors, move packaging to release * chore: remove old goreleaser conf * ci: remove `release` dependency on `docker push` * ci: fix release version * ci: upload packages * ci: try to fix json file list * ci: replace the json file list with a txt artifact * postremove -> preremove, skip install/remove error * actually do preremove * better preremove * ci: fix * ci: fix? * ci: clean-up * ci: try to change labels and filenames * ci: fix? * ci: fix? * ci: add `make package` target * ci: make labels more readable hope it doesn't break the pipeline again * build: remove alpine and archlinux packages, for now. --------- Co-authored-by: Deluan <deluan@navidrome.org>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
#!/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 isntall 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 || :
|
||||
touch "$postinstall_flag"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user