chore: snipe-it fix postInstall script
This commit is contained in:
@@ -1,12 +1,24 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
serviceName = "snipe-it";
|
serviceName = "snipe-it";
|
||||||
servicePort = config.m3ta.ports.get serviceName;
|
servicePort = config.m3ta.ports.get serviceName;
|
||||||
mysqlPort = config.m3ta.ports.get "mysql";
|
mysqlPort = config.m3ta.ports.get "mysql";
|
||||||
hostName = "am.az-gruppe.com";
|
hostName = "am.az-gruppe.com";
|
||||||
|
|
||||||
|
restoreDefaults = pkgs.writeShellScript "snipe-it-restore-defaults" ''
|
||||||
|
set -euo pipefail
|
||||||
|
src="${pkgs.snipe-it}/share/snipe-it/uploads"
|
||||||
|
dst="/var/lib/snipe-it/public/uploads"
|
||||||
|
|
||||||
|
if [ -d "$src" ] && [ -d "$dst" ]; then
|
||||||
|
# -n = kein Überschreiben existierender Dateien (User-Uploads bleiben erhalten)
|
||||||
|
cp -rn "$src/." "$dst/"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
in {
|
in {
|
||||||
services.${serviceName} = {
|
services.${serviceName} = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -52,6 +64,9 @@ in {
|
|||||||
after = ["mysql.service"];
|
after = ["mysql.service"];
|
||||||
requires = ["mysql.service"];
|
requires = ["mysql.service"];
|
||||||
unitConfig.ConditionPathExists = "${config.services.mysql.dataDir}/snipeit";
|
unitConfig.ConditionPathExists = "${config.services.mysql.dataDir}/snipeit";
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStartPre = ["+${restoreDefaults}"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Traefik configuration
|
# Traefik configuration
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
{prev}: {
|
||||||
|
snipe-it = prev.snipe-it.overrideAttrs (oldAttrs: {
|
||||||
|
postInstall =
|
||||||
|
''
|
||||||
|
snipe_it_out="$out/share/php/snipe-it"
|
||||||
|
mkdir -p $out/share/snipe-it
|
||||||
|
|
||||||
|
# Alle Default-Uploads sichern (z.B. default.png) bevor das
|
||||||
|
# ursprüngliche postInstall das Verzeichnis mit rm -R löscht
|
||||||
|
cp -r $snipe_it_out/public/uploads $out/share/snipe-it/uploads
|
||||||
|
''
|
||||||
|
+ oldAttrs.postInstall;
|
||||||
|
});
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user