From 7c1f9a05ee59ae4c9626d13d3840da1a0c1c0368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sandro=20J=C3=A4ckel?= Date: Thu, 31 Oct 2024 03:19:39 +0100 Subject: [PATCH] nixos/mediawiki: change user in maintenance scripts, use maintenance/run.php script, add deleteUserEmail,importDump,run scripts script initially copied from nextcloud and run with run.php as requested by this big warning: ******************************************************************************* NOTE: Do not run maintenance scripts directly, use maintenance/run.php instead! Running scripts directly has been deprecated in MediaWiki 1.40. It may not work for some (or any) scripts in the future. ******************************************************************************* --- nixos/modules/services/web-apps/mediawiki.nix | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix index eeb8d03f1902..a9ad02bdd60d 100644 --- a/nixos/modules/services/web-apps/mediawiki.nix +++ b/nixos/modules/services/web-apps/mediawiki.nix @@ -48,10 +48,26 @@ let preferLocalBuild = true; } '' mkdir -p $out/bin - for i in changePassword.php createAndPromote.php resetUserEmail.php userOptions.php edit.php nukePage.php update.php; do - makeWrapper ${php}/bin/php $out/bin/mediawiki-$(basename $i .php) \ - --set MEDIAWIKI_CONFIG ${mediawikiConfig} \ - --add-flags ${pkg}/share/mediawiki/maintenance/$i + makeWrapper ${php}/bin/php $out/bin/mediawiki-maintenance \ + --set MEDIAWIKI_CONFIG ${mediawikiConfig} \ + --add-flags ${pkg}/share/mediawiki/maintenance/run.php + + for i in changePassword createAndPromote deleteUserEmail resetUserEmail userOptions edit nukePage update importDump run; do + script="$out/bin/mediawiki-$i" + cat <<'EOF' >"$script" + #!${pkgs.runtimeShell} + become=(exec) + if [[ "$(id -u)" != ${user} ]]; then + become=(exec /run/wrappers/bin/sudo -u ${user} --) + fi + "${"$"}{become[@]}" ${placeholder "out"}/bin/mediawiki-maintenance \ + EOF + if [[ "$i" != "run" ]]; then + echo " ${pkg}/share/mediawiki/maintenance/$i.php \"\$@\"" >>"$script" + else + echo " ${pkg}/share/mediawiki/maintenance/\$1.php \"\''${@:2}\"" >>"$script" + fi + chmod +x "$script" done '';