mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-28 18:03:04 +00:00
Merge pull request #3292 from offlinehacker/elasticsearch_plugins
elasticsearch: add support for plugins
This commit is contained in:
commit
b035be7b44
@ -21,6 +21,11 @@ let
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
esPlugins = pkgs.buildEnv {
|
||||||
|
name = "elasticsearch-plugins";
|
||||||
|
paths = cfg.plugins;
|
||||||
|
};
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
@ -101,6 +106,12 @@ in {
|
|||||||
example = [ "-Djava.net.preferIPv4Stack=true" ];
|
example = [ "-Djava.net.preferIPv4Stack=true" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
plugins = mkOption {
|
||||||
|
description = "Extra elasticsearch plugins";
|
||||||
|
default = [];
|
||||||
|
type = types.listOf types.package;
|
||||||
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
###### implementation
|
###### implementation
|
||||||
@ -111,14 +122,19 @@ in {
|
|||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
after = [ "network-interfaces.target" ];
|
after = [ "network-interfaces.target" ];
|
||||||
environment = { ES_HOME = cfg.dataDir; };
|
environment = { ES_HOME = cfg.dataDir; };
|
||||||
|
path = [ pkgs.elasticsearch ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = "${pkgs.elasticsearch}/bin/elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
|
ExecStart = "elasticsearch -Des.path.conf=${configDir} ${toString cfg.extraCmdLineOptions}";
|
||||||
User = "elasticsearch";
|
User = "elasticsearch";
|
||||||
PermissionsStartOnly = true;
|
PermissionsStartOnly = true;
|
||||||
};
|
};
|
||||||
preStart = ''
|
preStart = ''
|
||||||
mkdir -m 0700 -p ${cfg.dataDir}
|
mkdir -m 0700 -p ${cfg.dataDir}
|
||||||
if [ "$(id -u)" = 0 ]; then chown -R elasticsearch ${cfg.dataDir}; fi
|
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 = {
|
meta = {
|
||||||
description = "Open Source, Distributed, RESTful Search Engine";
|
description = "Open Source, Distributed, RESTful Search Engine";
|
||||||
license = "ASL2.0";
|
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 { };
|
elasticsearch = callPackage ../servers/search/elasticsearch { };
|
||||||
|
|
||||||
|
elasticsearchPlugins = recurseIntoAttrs (
|
||||||
|
callPackage ../servers/search/elasticsearch/plugins.nix { }
|
||||||
|
);
|
||||||
|
|
||||||
emv = callPackage ../tools/misc/emv { };
|
emv = callPackage ../tools/misc/emv { };
|
||||||
|
|
||||||
enblendenfuse = callPackage ../tools/graphics/enblend-enfuse {
|
enblendenfuse = callPackage ../tools/graphics/enblend-enfuse {
|
||||||
|
Loading…
Reference in New Issue
Block a user