1 { varDir ? "/var/lib/roundcubemail"
2 , roundcube_config ? "/etc/roundcube/config.php"
9 if [ -d skins -a -d skins/larry -a ! -d skins/elastic ]; then
10 ln -s larry skins/elastic
13 buildPlugin = { appName, version, url, sha256, installPhase ? defaultInstall }:
14 stdenv.mkDerivation rec {
15 name = "roundcube-${appName}-${version}";
17 phases = "unpackPhase installPhase";
19 src = fetchurl { inherit url sha256; };
20 passthru.pluginName = appName;
22 withPlugins = plugins: skins: package.overrideAttrs(old: {
23 name = "${old.name}${if builtins.length skins > 0 then "-with-skins" else ""}${if builtins.length plugins > 0 then "-with-plugins" else ""}";
24 installPhase = old.installPhase +
25 builtins.concatStringsSep "\n" (
26 map (value: "ln -s ${value} $out/plugins/${value.pluginName}") plugins
28 builtins.concatStringsSep "\n" (
29 map (value: "ln -s ${value} $out/skins/${value.skinName}") skins
31 passthru = old.passthru // {
32 inherit plugins skins;
33 withPlugins = morePlugins: moreSkins: old.withPlugins (morePlugins ++ plugins) (morePlugins ++ skins);
36 package = stdenv.mkDerivation rec {
38 name = "roundcubemail-${version}";
40 url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/${name}-complete.tar.gz";
41 sha256 = "0p18wffwi2prh6vxhx1bc69qd1vwybggm8gvg3shahfdknxci9i4";
45 -e "s|RCUBE_INSTALL_PATH . 'temp.*|'${varDir}/cache';|" \
46 config/defaults.inc.php
48 -e "s|RCUBE_INSTALL_PATH . 'logs.*|'${varDir}/logs';|" \
49 config/defaults.inc.php
53 ln -s ${roundcube_config} $out/config/config.inc.php
58 inherit withPlugins buildPlugin;