{ 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')) ''; }