k 5 Reaktor: init plugin infrastructure
This commit is contained in:
parent
58f37bde83
commit
70264d1e46
krebs/5pkgs
38
krebs/5pkgs/Reaktor/plugins.nix
Normal file
38
krebs/5pkgs/Reaktor/plugins.nix
Normal file
|
@ -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"])
|
||||
'';
|
||||
};
|
||||
}
|
6
krebs/5pkgs/Reaktor/scripts/random-emoji.sh
Normal file
6
krebs/5pkgs/Reaktor/scripts/random-emoji.sh
Normal file
|
@ -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
|
|
@ -26,6 +26,8 @@ subdirs // rec {
|
|||
inherit (subdirs) get jq;
|
||||
};
|
||||
|
||||
ReaktorPlugins = pkgs.callPackage ./Reaktor/plugins.nix {};
|
||||
|
||||
execve = name: { filename, argv, envp ? {}, destination ? "" }:
|
||||
writeC name { inherit destination; } ''
|
||||
#include <unistd.h>
|
||||
|
|
Loading…
Reference in a new issue