mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-16 17:14:00 +00:00
nixos/freshrss: add extensions
This commit is contained in:
parent
bf3e0af6ba
commit
bb33682f3a
@ -5,6 +5,15 @@ let
|
||||
cfg = config.services.freshrss;
|
||||
|
||||
poolName = "freshrss";
|
||||
|
||||
extension-env = pkgs.buildEnv {
|
||||
name = "freshrss-extensions";
|
||||
paths = cfg.extensions;
|
||||
};
|
||||
env-vars = {
|
||||
DATA_PATH = cfg.dataDir;
|
||||
THIRDPARTY_EXTENSIONS_PATH = "${extension-env}/share/freshrss/";
|
||||
};
|
||||
in
|
||||
{
|
||||
meta.maintainers = with maintainers; [ etu stunkymonkey mattchrist ];
|
||||
@ -14,6 +23,31 @@ in
|
||||
|
||||
package = mkPackageOption pkgs "freshrss" { };
|
||||
|
||||
extensions = mkOption {
|
||||
type = types.listOf types.package;
|
||||
default = [ ];
|
||||
defaultText = literalExpression "[]";
|
||||
example = literalExpression ''
|
||||
with freshrss-extensions; [
|
||||
youtube
|
||||
] ++ [
|
||||
(freshrss-extensions.buildFreshRssExtension {
|
||||
FreshRssExtUniqueId = "ReadingTime";
|
||||
pname = "reading-time";
|
||||
version = "1.5";
|
||||
src = pkgs.fetchFromGitLab {
|
||||
domain = "framagit.org";
|
||||
owner = "Lapineige";
|
||||
repo = "FreshRSS_Extension-ReadingTime";
|
||||
rev = "fb6e9e944ef6c5299fa56ffddbe04c41e5a34ebf";
|
||||
hash = "sha256-C5cRfaphx4Qz2xg2z+v5qRji8WVSIpvzMbethTdSqsk=";
|
||||
};
|
||||
})
|
||||
]
|
||||
'';
|
||||
description = "Additional extensions to be used.";
|
||||
};
|
||||
|
||||
defaultUser = mkOption {
|
||||
type = types.str;
|
||||
default = "admin";
|
||||
@ -214,9 +248,7 @@ in
|
||||
"pm.max_spare_servers" = 5;
|
||||
"catch_workers_output" = true;
|
||||
};
|
||||
phpEnv = {
|
||||
DATA_PATH = "${cfg.dataDir}";
|
||||
};
|
||||
phpEnv = env-vars;
|
||||
};
|
||||
};
|
||||
|
||||
@ -259,9 +291,7 @@ in
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
restartIfChanged = true;
|
||||
environment = {
|
||||
DATA_PATH = cfg.dataDir;
|
||||
};
|
||||
environment = env-vars;
|
||||
|
||||
script =
|
||||
let
|
||||
@ -293,9 +323,7 @@ in
|
||||
description = "FreshRSS feed updater";
|
||||
after = [ "freshrss-config.service" ];
|
||||
startAt = "*:0/5";
|
||||
environment = {
|
||||
DATA_PATH = cfg.dataDir;
|
||||
};
|
||||
environment = env-vars;
|
||||
serviceConfig = defaultServiceConfig // {
|
||||
ExecStart = "${cfg.package}/app/actualize_script.php";
|
||||
};
|
||||
|
@ -3,6 +3,7 @@
|
||||
, fetchFromGitHub
|
||||
, nixosTests
|
||||
, php
|
||||
, writeText
|
||||
}:
|
||||
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
@ -16,6 +17,16 @@ stdenvNoCC.mkDerivation rec {
|
||||
hash = "sha256-AAOON1RdbG6JSnCc123jmIlIXHOE1PE49BV4hcASO/s=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs cli/*.php app/actualize_script.php
|
||||
'';
|
||||
|
||||
# the thirdparty_extension_path can only be set by config, but should be read by an env-var.
|
||||
overrideConfig = writeText "constants.local.php" ''
|
||||
<?php
|
||||
define('THIRDPARTY_EXTENSIONS_PATH', getenv('THIRDPARTY_EXTENSIONS_PATH') . '/extensions');
|
||||
'';
|
||||
|
||||
buildInputs = [ php ];
|
||||
|
||||
# There's nothing to build.
|
||||
@ -25,13 +36,10 @@ stdenvNoCC.mkDerivation rec {
|
||||
runHook preInstall
|
||||
mkdir -p $out
|
||||
cp -vr * $out/
|
||||
cp $overrideConfig $out/constants.local.php
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs cli/*.php app/actualize_script.php
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) freshrss-sqlite freshrss-pgsql freshrss-http-auth freshrss-none-auth;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user