summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/Reaktor
diff options
context:
space:
mode:
Diffstat (limited to 'krebs/5pkgs/Reaktor')
-rw-r--r--krebs/5pkgs/Reaktor/plugins.nix38
-rw-r--r--krebs/5pkgs/Reaktor/scripts/random-emoji.sh6
2 files changed, 44 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"])
+ '';
+ };
+}
diff --git a/krebs/5pkgs/Reaktor/scripts/random-emoji.sh b/krebs/5pkgs/Reaktor/scripts/random-emoji.sh
new file mode 100644
index 000000000..386aa68b9
--- /dev/null
+++ b/krebs/5pkgs/Reaktor/scripts/random-emoji.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+curl http://emojicons.com/random -s | \
+ grep data-text | \
+ sed -n 's/.*>\(.*\)<\/textarea>/\1/p' | \
+ head -n 1 | \
+ xmlstarlet unesc