summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/Reaktor/plugins.nix
diff options
context:
space:
mode:
authortv <tv@krebsco.de>2017-05-24 01:43:50 +0200
committertv <tv@krebsco.de>2017-05-24 01:43:50 +0200
commitf0b98bd0114df1e1ebb82ff300f9532d86b3eb18 (patch)
tree58a39173f7d6d7caa10a7b8fec1b5a1e54f0c08c /krebs/5pkgs/Reaktor/plugins.nix
parent46d6506916f699e3b707dc41cd68c92b98e50e5a (diff)
krebs/5pkgs: move simple pkgs to a subdir
Diffstat (limited to 'krebs/5pkgs/Reaktor/plugins.nix')
-rw-r--r--krebs/5pkgs/Reaktor/plugins.nix131
1 files changed, 0 insertions, 131 deletions
diff --git a/krebs/5pkgs/Reaktor/plugins.nix b/krebs/5pkgs/Reaktor/plugins.nix
deleted file mode 100644
index e85e41cf..00000000
--- a/krebs/5pkgs/Reaktor/plugins.nix
+++ /dev/null
@@ -1,131 +0,0 @@
-{ stdenv, lib, pkgs, makeWrapper }:
-
-rec {
- # Begin API
- buildBaseReaktorPlugin = { name
- , config # python extra configuration for plugin
- , phases ? []
- , ... } @ attrs:
- stdenv.mkDerivation (attrs // {
- name = "Reaktor-plugin-" + name;
- isReaktorPlugin = true;
- });
-
- buildSimpleReaktorPlugin = name: { script
- , path ? []
- , env ? {}
- , append_rule ? false # append the rule instead of insert
- , pattern ? ""
- , ... } @ attrs:
- let
- path_env = { "PATH" = lib.makeSearchPath "bin" (path ++ [ pkgs.coreutils ]); };
- src_dir = pkgs.substituteAll ( {
- inherit name;
- dir = "bin";
- isExecutable = true;
- src = script;
- });
- src_file = "${src_dir}/bin/${name}";
- config = ''
- public_commands.${if append_rule then "append(" else "insert(0," }{
- 'capname' : "${name}",
- 'pattern' : ${if pattern == "" then
- ''indirect_pattern.format("${name}")'' else
- ''"${pattern}"'' },
- 'argv' : ["${src_file}"],
- 'env' : ${builtins.toJSON (path_env // env)} })
- '';
- config_file = pkgs.writeText "plugin.py" config;
- in buildBaseReaktorPlugin (attrs // rec {
- inherit name config;
-
- phases = [ "installPhase" ];
- buildInputs = [ makeWrapper ];
- installPhase = ''
- mkdir -p $out/bin $out/etc/Reaktor
- ln -s ${src_file} $out/bin
- wrapProgram $out/bin/${name} \
- --prefix PATH : ${path_env.PATH}
- ln -s ${config_file} $out/etc/Reaktor/plugin.py
- '';
-
- });
- # End API
-
- # Begin Plugins
- random-emoji = buildSimpleReaktorPlugin "emoji" {
- path = with pkgs; [ gnused gnugrep xmlstarlet curl ];
- script = ./scripts/random-emoji.sh;
- };
-
- sed-plugin = buildSimpleReaktorPlugin "sed-plugin" {
- path = [ pkgs.gnused pkgs.python3 ];
- # only support s///gi the plugin needs to see every msg
- # TODO: this will eat up the last regex, fix Reaktor to support fallthru
- append_rule = true;
- pattern = "^(?P<args>.*)$$";
- script = ./scripts/sed-plugin.py;
- };
-
- shack-correct = buildSimpleReaktorPlugin "shack-correct" {
- path = [ pkgs.gnused ];
- pattern = "^(?P<args>.*Shack.*)$$";
- script = ./scripts/shack-correct.sh;
- };
-
- nixos-version = buildSimpleReaktorPlugin "nixos-version" {
- script = pkgs.writeDash "nixos-version" ''
- . /etc/os-release
- echo "$PRETTY_NAME"
- '';
- };
- stockholm-issue = buildSimpleReaktorPlugin "stockholm-issue" {
- script = ./scripts/random-issue.sh;
- path = with pkgs; [ git gnused haskellPackages.lentil ];
- env = { "origin" = "http://cgit.gum/stockholm"; };
- };
-
- titlebot =
- let
- pypkgs = pkgs.python3Packages;
- titlebot_cmds = pypkgs.buildPythonPackage {
- name = "titlebot_cmds";
- propagatedBuildInputs = with pypkgs; [ setuptools ];
- src = pkgs.fetchurl {
- url = "https://github.com/makefu/reaktor-titlebot/archive/2.1.0.tar.gz";
- sha256 = "0wvf09wmk8b52f9j65qrw81nwrhs9pfhijwrlkzp5l7l2q8cjkp6";
- };
- };
- in buildBaseReaktorPlugin rec {
- name = "titlebot";
- phases = [ "installPhase" ];
- installPhase = ''
- mkdir -p $out
- ln -s ${titlebot_cmds}/* $out
- '';
- config = ''
- def titlebot_cmd(cmd):
- from os import environ
- return { 'capname': None,
- 'env': { 'TITLEDB':
- environ['state_dir']+'/suggestions.json' },
- 'pattern': '^\\.' + cmd + '\\s*(?:\\s+(?P<args>.*))?$$',
- 'argv': [ '${titlebot_cmds}/bin/' + cmd ] }
- for i in ['up','help','list','top','new']:
- public_commands.insert(0,titlebot_cmd(i))
- commands.insert(0,titlebot_cmd('clear'))
- '';
- };
-
- url-title = (buildSimpleReaktorPlugin "url-title" {
- pattern = "^.*(?P<args>http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+).*$$";
- path = with pkgs; [ curl perl ];
- script = pkgs.writeDash "lambda-pl" ''
- if [ "$#" -gt 0 ]; then
- curl -SsL --max-time 5 "$1" |
- perl -l -0777 -ne 'print $1 if /<title.*?>\s*(.*?)(?: - youtube)?\s*<\/title/si'
- fi
- '';
- });
-
-}