{ pkgs ? import {}, mode ? "shell" }: with pkgs.lib; let modes = { shell = "exec zsh"; test = "npm test"; run = "exec bin/hubot"; runTg = '' telegram-cli \ -dWE \ -Z $HUBOT_TG_SCRIPT \ -P $HUBOT_TG_PORT > /dev/null 2>&1 & bin/hubot -a tg pkill -9 telegram-wo-key; exit ''; }; telegram = pkgs.telegram-cli.override { python = pkgs.python3; }; in pkgs.stdenv.mkDerivation rec { name = "asjon-dev"; source = "."; buildInputs = node ++ external; node = with pkgs.nodePackages; [ pkgs.nodejs mocha coffee-script ]; external = with pkgs; [ zsh telegram graphicsmagick ]; shellHook = environment + getAttr mode modes; environment = '' #set env variables here export HUBOT_TG_SCRIPT=node_modules/hubot-tg/hubot.py export HUBOT_TG_PORT=1123 export ADMIN_ROOM=user#123456 ''; }