Unverified Commit 7c1f9a05 authored by Sandro Jäckel's avatar Sandro Jäckel
Browse files

nixos/mediawiki: change user in maintenance scripts, use maintenance/run.php...

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.
*******************************************************************************
parent 05e3b3d3
Loading
Loading
Loading
Loading
+20 −4
Original line number Diff line number Diff line
@@ -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) \
    makeWrapper ${php}/bin/php $out/bin/mediawiki-maintenance \
      --set MEDIAWIKI_CONFIG ${mediawikiConfig} \
        --add-flags ${pkg}/share/mediawiki/maintenance/$i
      --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
  '';