summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/Reaktor/plugins.nix
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2015-12-25 00:04:52 +0100
committermakefu <github@syntax-fehler.de>2015-12-25 00:04:52 +0100
commit70264d1e46dc17391f0a3a590ba0749d0a93eda2 (patch)
tree0ef0f3308ea75521a1d68ff5264dcc9d1f5ee1b5 /krebs/5pkgs/Reaktor/plugins.nix
parent58f37bde831877e467646d283b88c17251b84b7c (diff)
k 5 Reaktor: init plugin infrastructure
Diffstat (limited to 'krebs/5pkgs/Reaktor/plugins.nix')
-rw-r--r--krebs/5pkgs/Reaktor/plugins.nix38
1 files changed, 38 insertions, 0 deletions
diff --git a/krebs/5pkgs/Reaktor/plugins.nix b/krebs/5pkgs/Reaktor/plugins.nix
new file mode 100644
index 000000000..05ede38e1
--- /dev/null
+++ b/krebs/5pkgs/Reaktor/plugins.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, pkgs, makeWrapper }:
+
+rec {
+ buildReaktorPlugin = { name
+ # TODO: profiles
+ , extraConfig
+ , phases ? []
+ , ... } @ attrs:
+ stdenv.mkDerivation (attrs // {
+ name = "Reaktor-plugin-" + name;
+ phases = phases ++ [ "installPhase" ];
+ isReaktorPlugin = true;
+ });
+
+ random-emoji = buildReaktorPlugin rec {
+ name = "random-emoji";
+ src = ./scripts/random-emoji.sh;
+ phases = [ "installPhase" ];
+ buildInputs = [ makeWrapper ];
+ installPhase = ''
+ mkdir -p $out/bin
+ install -vm 755 ${src} $out/bin/random-emoji.sh
+ wrapProgram $out/bin/random-emoji.sh \
+ --prefix PATH : ${lib.makeSearchPath "bin" (with pkgs; [
+ coreutils
+ gnused
+ gnugrep
+ xmlstarlet
+ curl])};
+ '';
+ extraConfig = ''
+ public_commands.insert(0,{
+ 'capname' : "emoji",
+ 'pattern' : indirect_pattern.format("emoji"),
+ 'argv' : ["random-emoji.sh"])
+ '';
+ };
+}