{ pkgs, lib }: let kebab-case-name = project-name: lib.pipe project-name [ (builtins.replaceStrings lib.upperChars (map (x: "-${x}") lib.lowerChars) ) (lib.removePrefix "-") ]; mw-ext = { name , commit , hash , tracking-branch ? "REL1_42" , kebab-name ? kebab-case-name name , fetchgit ? pkgs.fetchgit }: { ${name} = (fetchgit { name = "mediawiki-${kebab-name}-source"; url = "https://gerrit.wikimedia.org/r/mediawiki/extensions/${name}"; rev = commit; inherit hash; }).overrideAttrs (_: { passthru = { inherit name kebab-name tracking-branch; }; }); }; in # NOTE: to add another extension, you can add an mw-ext expression # with an empty (or even wrong) commit and empty hash, and # run the update script lib.mergeAttrsList [ (mw-ext { name = "CodeEditor"; commit = "9f69f2cf7616342d236726608a702d651b611938"; hash = "sha256-sRaYj34+7aghJUw18RoowzEiMx0aOANU1a7YT8jivBw="; }) (mw-ext { name = "CodeMirror"; commit = "1a1048c770795789676adcf8a33c1b69f6f5d3ae"; hash = "sha256-Y5ePrtLNiko2uU/sesm8jdYmxZkYzQDHfkIG1Q0v47I="; }) (mw-ext { name = "DeleteBatch"; commit = "b76bb482e026453079104d00f9675b4ab851947e"; hash = "sha256-GebF9B3RVwpPw8CYKDDT6zHv/MrrzV6h2TEIvNlRmcw="; }) (mw-ext { name = "PluggableAuth"; commit = "1da98f447fd8321316d4286d8106953a6665f1cc"; hash = "sha256-DKDVcAfWL90FmZbSsdx1J5PkGu47EsDQmjlCpcgLCn4="; }) (mw-ext { name = "Popups"; commit = "9b9e986316b9662b1b45ce307a58dd0320dd33cf"; hash = "sha256-rSOZHT3yFIxA3tPhIvztwMSmSef/XHKmNfQl1JtGrUA="; }) (mw-ext { name = "Scribunto"; commit = "eb6a987e90db47b09b0454fd06cddb69fdde9c40"; hash = "sha256-Nr0ZLIrS5jnpiBgGnd90lzi6KshcsxeC+xGmNsB/g88="; }) (mw-ext { name = "SimpleSAMLphp"; kebab-name = "simple-saml-php"; commit = "fd4d49cf48d16efdb91ae8128cdd507efe84d311"; hash = "sha256-Qdtroew2j3AsZYlhAAUKQXXS2kUzUeQFnuR6ZHdFhAQ="; }) (mw-ext { name = "TemplateData"; commit = "836e3ca277301addd2578b2e746498ff6eb8e574"; hash = "sha256-UMcRLYxYn+AormwTYjKjjZZjA806goMY2TRQ4KoS5fY="; }) (mw-ext { name = "TemplateStyles"; commit = "06a2587689eba0a17945fd9bd4bb61674d3a7853"; hash = "sha256-C7j0jCkMeVZiLKpk+55X+lLnbG4aeH+hWIm3P5fF4fw="; }) (mw-ext { name = "UserMerge"; commit = "41759d0c61377074d159f7d84130a095822bc7a3"; hash = "sha256-pGjA7r30StRw4ff0QzzZYUhgD3dC3ZuiidoSEz8kA8Q="; }) (mw-ext { name = "VisualEditor"; commit = "a128b11fe109aa882de5a40d2be0cdd0947ab11b"; hash = "sha256-bv1TkomouOxe+DKzthyLyppdEUFSXJ9uE0zsteVU+D4="; }) (mw-ext { name = "WikiEditor"; commit = "21383e39a4c9169000acd03edfbbeec4451d7974"; hash = "sha256-aPVpE6e4qLLliN9U5TA36e8tFrIt7Fl8RT1cGPUWoNI="; }) ]