Skip to content

Commit d65a3a0

Browse files
committed
fix jellyfin overwriting settings
1 parent 6f27ec1 commit d65a3a0

1 file changed

Lines changed: 30 additions & 5 deletions

File tree

modules/jellyfin/default.nix

Lines changed: 30 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,36 @@ in {
141141
TimeoutSec = 15;
142142
SuccessExitStatus = "0 143";
143143

144-
ExecStartPre = "+" + pkgs.writeShellScript "jellyfin-setup-config" ''
145-
${pkgs.coreutils}/bin/install -m 440 -o root -g ${cfg.group} /etc/jellyfin/network.xml.template '${cfg.configDir}/network.xml'
146-
${pkgs.coreutils}/bin/install -m 440 -o root -g ${cfg.group} /etc/jellyfin/branding.xml.template '${cfg.configDir}/branding.xml'
147-
${pkgs.coreutils}/bin/install -m 440 -o root -g ${cfg.group} /etc/jellyfin/encoding.xml.template '${cfg.configDir}/encoding.xml'
148-
${pkgs.coreutils}/bin/install -m 440 -o root -g ${cfg.group} /etc/jellyfin/system.xml.template '${cfg.configDir}/system.xml'
144+
ExecStartPre = pkgs.writeShellScript "jellyfin-setup-config" ''
145+
set -eu
146+
147+
${pkgs.coreutils}/bin/install -m 640 /etc/jellyfin/network.xml.template '${cfg.configDir}/network.xml'
148+
${pkgs.coreutils}/bin/install -m 640 /etc/jellyfin/branding.xml.template '${cfg.configDir}/branding.xml'
149+
${pkgs.coreutils}/bin/install -m 640 /etc/jellyfin/encoding.xml.template '${cfg.configDir}/encoding.xml'
150+
${pkgs.coreutils}/bin/install -m 640 /etc/jellyfin/system.xml.template '${cfg.configDir}/system.xml'
151+
152+
${optionalString cfg.system.isStartupWizardCompleted ''
153+
if [ ! -f "${cfg.configDir}/migrations.xml" ]; then
154+
echo "First run detected - generating migrations.xml"
155+
${pkgs.xmlstarlet}/bin/xmlstarlet ed -L -u "//IsStartupWizardCompleted" -v "false" '${cfg.configDir}/system.xml'
156+
157+
${getExe cfg.package} --datadir '${cfg.dataDir}' --configdir '${cfg.configDir}' --cachedir '${cfg.cacheDir}' --logdir '${cfg.logDir}' &
158+
JELLYFIN_PID=$!
159+
160+
echo "Waiting for migrations.xml to be generated..."
161+
until [ -f "${cfg.configDir}/migrations.xml" ]; do
162+
sleep 1
163+
done
164+
sleep 3
165+
166+
echo "Stopping temporary Jellyfin instance..."
167+
kill -15 $JELLYFIN_PID || true
168+
wait $JELLYFIN_PID || true
169+
170+
echo "Restoring IsStartupWizardCompleted to true"
171+
${pkgs.xmlstarlet}/bin/xmlstarlet ed -L -u "//IsStartupWizardCompleted" -v "true" '${cfg.configDir}/system.xml'
172+
fi
173+
''}
149174
'';
150175

151176
ExecStart =

0 commit comments

Comments
 (0)