summaryrefslogtreecommitdiff
path: root/pkgs/webapps/dokuwiki/default.nix
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2018-12-13 21:25:24 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2019-05-24 01:40:13 +0200
commit252dd7d899b7a0deea1537cc5d2d48b825afffb0 (patch)
treef51c3c9cd7429b0b9553a840f26bee489be045bc /pkgs/webapps/dokuwiki/default.nix
downloadNUR-252dd7d899b7a0deea1537cc5d2d48b825afffb0.tar.gz
NUR-252dd7d899b7a0deea1537cc5d2d48b825afffb0.tar.zst
NUR-252dd7d899b7a0deea1537cc5d2d48b825afffb0.zip
Initial commit published for NURnur_root
Diffstat (limited to 'pkgs/webapps/dokuwiki/default.nix')
-rw-r--r--pkgs/webapps/dokuwiki/default.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/webapps/dokuwiki/default.nix b/pkgs/webapps/dokuwiki/default.nix
new file mode 100644
index 00000000..9df88c6b
--- /dev/null
+++ b/pkgs/webapps/dokuwiki/default.nix
@@ -0,0 +1,43 @@
1{ varDir ? "/var/lib/dokuwiki", preload ? "", lib, stdenv, mylibs, writeText }:
2let
3 preloadFile = plugins: let preloads = [preload]
4 ++ builtins.concatMap (p: lib.optional (lib.hasAttr "preload" p) (p.preload p)) plugins;
5 in writeText "preload.php" (''
6 <?php
7 '' + builtins.concatStringsSep "\n" preloads
8 );
9 withPlugins = plugins: package.overrideAttrs(old: {
10 name = "${old.name}-with-plugins";
11 installPhase = old.installPhase + (
12 builtins.concatStringsSep "\n" (
13 map (value: "ln -sf ${value} $out/lib/plugins/${value.pluginName}") plugins
14 )
15 );
16 installPreloadPhase = ''
17 cp ${preloadFile plugins} $out/inc/preload.php
18 '';
19 passthru = old.passthru // {
20 inherit plugins;
21 withPlugins = morePlugins: old.withPlugins (morePlugins ++ plugins);
22 };
23 });
24 package = stdenv.mkDerivation (mylibs.fetchedGithub ./dokuwiki.json // rec {
25 phases = "unpackPhase buildPhase installPhase installPreloadPhase fixupPhase";
26 buildPhase = ''
27 mv conf conf.dist
28 mv data data.dist
29 '';
30 installPhase = ''
31 cp -a . $out
32 ln -sf ${varDir}/{conf,data} $out/
33 ln -sf ${varDir}/conf/.htaccess $out/
34 '';
35 installPreloadPhase = ''
36 cp ${preloadFile []} $out/inc/preload.php
37 '';
38 passthru = {
39 plugins = [];
40 inherit withPlugins varDir;
41 };
42 });
43in package