diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/web-apps/moodle/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/web-apps/moodle/default.nix | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix index 62de7620c5e..447a27ad082 100644 --- a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix +++ b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix @@ -1,23 +1,23 @@ -{ stdenv, fetchurl, writeText }: +{ lib, stdenv, fetchurl, writeText, plugins ? [ ] }: let - version = "3.8.3"; + version = "3.9.1"; stableVersion = builtins.substring 0 2 (builtins.replaceStrings ["."] [""] version); -in -stdenv.mkDerivation rec { +in stdenv.mkDerivation rec { pname = "moodle"; inherit version; src = fetchurl { - url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz"; - sha256 = "1anjv4gvbb6833j04a1b4aaysnl4h0x96sr1hhm4nm5kq2fimjd1"; + url = + "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz"; + sha256 = "sha256-6QJDEInUQQSNj3kThQ65o2cT6JaRy0FrEKy+EcDMVvs="; }; phpConfig = writeText "config.php" '' - <?php - return require(getenv('MOODLE_CONFIG')); - ?> + <?php + return require(getenv('MOODLE_CONFIG')); + ?> ''; installPhase = '' @@ -27,11 +27,34 @@ stdenv.mkDerivation rec { cp -r . $out/share/moodle cp ${phpConfig} $out/share/moodle/config.php + ${lib.concatStringsSep "\n" (map (p: + let + dir = if p.pluginType == "mod" then + "mod" + else if p.pluginType == "theme" then + "theme" + else if p.pluginType == "block" then + "blocks" + else if p.pluginType == "question" then + "question/type" + else if p.pluginType == "course" then + "course/format" + else if p.pluginType == "report" then + "admin/report" + else + throw "unknown moodle plugin type"; + # we have to copy it, because the plugins have refrences to .. inside + in '' + mkdir -p $out/share/moodle/${dir}/${p.name} + cp -r ${p}/* $out/share/moodle/${dir}/${p.name}/ + '') plugins)} + runHook postInstall ''; meta = with stdenv.lib; { - description = "Free and open-source learning management system (LMS) written in PHP"; + description = + "Free and open-source learning management system (LMS) written in PHP"; license = licenses.gpl3Plus; homepage = "https://moodle.org/"; maintainers = with maintainers; [ aanderse ]; |