mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 06:45:16 +01:00
elasticsearch: add support for plugins
This commit is contained in:
parent
7acfec9e47
commit
7eb4d306fb
4 changed files with 75 additions and 1 deletions
|
@ -21,6 +21,11 @@ let
|
|||
];
|
||||
};
|
||||
|
||||
esPlugins = pkgs.buildEnv {
|
||||
name = "elasticsearch-plugins";
|
||||
paths = cfg.plugins;
|
||||
};
|
||||
|
||||
in {
|
||||
|
||||
###### interface
|
||||
|
@ -101,6 +106,12 @@ in {
|
|||
example = [ "-Djava.net.preferIPv4Stack=true" ];
|
||||
};
|
||||
|
||||
plugins = mkOption {
|
||||
description = "Extra elasticsearch plugins";
|
||||
default = [];
|
||||
type = types.listOf types.package;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
@ -111,14 +122,19 @@ in {
|
|||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-interfaces.target" ];
|
||||
environment = { ES_HOME = cfg.dataDir; };
|
||||
path = [ pkgs.elasticsearch ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
|
||||
ExecStart = "elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
|
||||
User = "elasticsearch";
|
||||
PermissionsStartOnly = true;
|
||||
};
|
||||
preStart = ''
|
||||
mkdir -m 0700 -p ${cfg.dataDir}
|
||||
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
|
||||
|
||||
# Install plugins
|
||||
rm ${cfg.dataDir}/plugins || true
|
||||
ln -s ${esPlugins}/plugins ${cfg.dataDir}/plugins
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
|
|||
meta = {
|
||||
description = "Open Source, Distributed, RESTful Search Engine";
|
||||
license = "ASL2.0";
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
53
pkgs/servers/search/elasticsearch/plugins.nix
Normal file
53
pkgs/servers/search/elasticsearch/plugins.nix
Normal file
|
@ -0,0 +1,53 @@
|
|||
{ pkgs, stdenv, fetchurl, unzip, elasticsearch }:
|
||||
|
||||
with pkgs.lib;
|
||||
|
||||
let
|
||||
esPlugin = a@{
|
||||
pluginName,
|
||||
installPhase ? ''
|
||||
mkdir -p $out
|
||||
ES_HOME=$out ${elasticsearch}/bin/elasticsearch-plugin --install ${pluginName} --url file://$src
|
||||
'',
|
||||
...
|
||||
}:
|
||||
stdenv.mkDerivation (a // {
|
||||
inherit installPhase;
|
||||
unpackPhase = "true";
|
||||
buildInputs = [ unzip ];
|
||||
meta = a.meta // {
|
||||
platforms = elasticsearch.meta.platforms;
|
||||
maintainers = a.maintainers ++ [ maintainers.offline ];
|
||||
};
|
||||
});
|
||||
in {
|
||||
elasticsearch_river_jdbc = esPlugin rec {
|
||||
name = "elasticsearch-river-jdbc-${version}";
|
||||
pluginName = "jdbc";
|
||||
version = "1.2.1.1";
|
||||
src = fetchurl {
|
||||
url = "http://xbib.org/repository/org/xbib/elasticsearch/plugin/elasticsearch-river-jdbc/${version}/${name}-plugin.zip";
|
||||
sha1 = "68e7e1fdf45d0e5852b21610a84740595223ea11";
|
||||
};
|
||||
meta = {
|
||||
homepage = "https://github.com/jprante/elasticsearch-river-jdbc";
|
||||
description = "Plugin to fetch data from JDBC sources for indexing into Elasticsearch";
|
||||
license = licenses.asl20;
|
||||
};
|
||||
};
|
||||
|
||||
elasticsearch_analisys_lemmagen = esPlugin rec {
|
||||
name = "elasticsearch-analysis-lemmagen-${version}";
|
||||
pluginName = "elasticsearch-analysis-lemmagen";
|
||||
version = "0.1";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vhyza/elasticsearch-analysis-lemmagen/releases/download/v${version}/${name}-plugin.zip";
|
||||
sha256 = "bf7bf5ce3ccdd3afecd0e18cd6fce1ef56f824e41f4ef50553ae598caa5c366d";
|
||||
};
|
||||
meta = {
|
||||
homepage = "https://github.com/vhyza/elasticsearch-analysis-lemmagen";
|
||||
description = "LemmaGen Analysis plugin provides jLemmaGen lemmatizer as Elasticsearch token filter";
|
||||
license = licenses.asl20;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -954,6 +954,10 @@ let
|
|||
|
||||
elasticsearch = callPackage ../servers/search/elasticsearch { };
|
||||
|
||||
elasticsearchPlugins = recurseIntoAttrs (
|
||||
callPackage ../servers/search/elasticsearch/plugins.nix { }
|
||||
);
|
||||
|
||||
emv = callPackage ../tools/misc/emv { };
|
||||
|
||||
enblendenfuse = callPackage ../tools/graphics/enblend-enfuse {
|
||||
|
|
Loading…
Reference in a new issue