aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/web-apps/moodle/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/web-apps/moodle/default.nix43
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 ];