39 lines
1.3 KiB
Nix
39 lines
1.3 KiB
Nix
![]() |
{ stdenv,config, lib, pkgs, ... }:
|
||
|
|
||
|
with pkgs;
|
||
|
let
|
||
|
pypkgs = pkgs.python3Packages;
|
||
|
titlebot_cmds = pypkgs.buildPythonPackage {
|
||
|
name = "titlebot_cmds";
|
||
|
propagatedBuildInputs = with pypkgs; [ setuptools ];
|
||
|
src = fetchurl {
|
||
|
# https://github.com/makefu/reaktor-titlebot tag 2.1.0
|
||
|
url = "https://github.com/makefu/reaktor-titlebot/archive/2.1.0.tar.gz";
|
||
|
sha256 = "0wvf09wmk8b52f9j65qrw81nwrhs9pfhijwrlkzp5l7l2q8cjkp6";
|
||
|
};
|
||
|
};
|
||
|
pub_cmds = ["up" "help" "list" "top" "highest" "undo" ];
|
||
|
priv_cmds = [ "clear" ];
|
||
|
in {
|
||
|
# TODO: write identify file in
|
||
|
# {config.users.extraUsers.Reaktor.home}/state/admin.lst
|
||
|
krebs.Reaktor.extraConfig = ''
|
||
|
def titlebot_cmd(cmd):
|
||
|
return {
|
||
|
'capname': cmd,
|
||
|
'env': {
|
||
|
'TITLEDB':
|
||
|
'${config.users.extraUsers.Reaktor.home}/suggestions.json'
|
||
|
},
|
||
|
'pattern': '^\\.' + cmd + '\\s*(?:\\s+(?P<args>.*))?$$',
|
||
|
'argv': [ '${titlebot_cmds}/bin/' + cmd ] }
|
||
|
# TODO: for each element in ${titlebot_cmds}/bin/*
|
||
|
public_commands.insert(0,titlebot_cmd('up'))
|
||
|
public_commands.insert(0,titlebot_cmd('help'))
|
||
|
public_commands.insert(0,titlebot_cmd('list'))
|
||
|
public_commands.insert(0,titlebot_cmd('top'))
|
||
|
public_commands.insert(0,titlebot_cmd('new'))
|
||
|
commands.insert(0,titlebot_cmd('clear'))
|
||
|
'';
|
||
|
}
|