blob: 8001a606ef94c84c52ab5625de157bd818337c94 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
{ yourls_config ? "/etc/yourls/config.php", fetchFromGitHub, callPackage, lib, stdenv }:
let
pluginNames = [ "ldap" ];
allPlugins = lib.attrsets.genAttrs pluginNames
(name: callPackage (./plugins + "/${name}") {});
toPassthru = pkg: plugins: {
inherit plugins allPlugins;
withPlugins = withPlugins pkg;
};
withPlugins = pkg: toPlugins:
let
plugins = toPlugins allPlugins;
toInstallPlugin = n: "ln -s ${n} $out/user/plugins/${n.pluginName}";
newYourls = pkg.overrideAttrs(old: {
installPhase = old.installPhase + "\n" + builtins.concatStringsSep "\n" (map toInstallPlugin plugins);
passthru = toPassthru newYourls (pkg.plugins ++ plugins);
});
in newYourls;
package = stdenv.mkDerivation (rec {
pname = "yourls";
version = "1.7.3";
src = fetchFromGitHub {
owner = "YOURLS";
repo = "YOURLS";
rev = "077018822d3594229daa8343310d0b40804b9ddc";
sha256 = "1av6h619rwqn0yn0kjn2s2h3gmrhmxaaa9hd5ns4ralxgg731imd";
fetchSubmodules = true;
};
installPhase = ''
mkdir -p $out
cp -a */ *.php $out/
cp sample-robots.txt $out/robots.txt
ln -sf ${yourls_config} $out/includes/config.php
'';
passthru = toPassthru package [];
});
in package
|