diff options
author | makefu <github@syntax-fehler.de> | 2022-04-27 22:07:43 +0200 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2022-04-27 22:07:43 +0200 |
commit | bdd36774f5e0854553b13433ef85260c6c074b3e (patch) | |
tree | 656d0a2755c098a9e69c373a8c4f39fa82cb8d1e /lass/2configs/hass/pyscript/shell.nix | |
parent | c3adb252afa29f0140f29c935201cfbb100b5697 (diff) | |
parent | 92d5eacd6d9e530c4d1ea0dec2652417b0fde78a (diff) |
Merge remote-tracking branch 'lass/master'
Diffstat (limited to 'lass/2configs/hass/pyscript/shell.nix')
-rw-r--r-- | lass/2configs/hass/pyscript/shell.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/lass/2configs/hass/pyscript/shell.nix b/lass/2configs/hass/pyscript/shell.nix new file mode 100644 index 000000000..3cfac0275 --- /dev/null +++ b/lass/2configs/hass/pyscript/shell.nix @@ -0,0 +1,51 @@ +{ pkgs ? import <nixpkgs> {} }: let + + hass_host = "styx.r"; + hass_token = builtins.readFile ./hass_token; + + mach-nix = import (builtins.fetchGit { + url = "https://github.com/DavHau/mach-nix/"; + ref = "refs/tags/3.4.0"; + }) { + pkgs = pkgs; + }; + pyenv = mach-nix.mkPython { + requirements = '' + hass_pyscript_kernel + ''; + }; + jupyter = import (builtins.fetchGit { + url = https://github.com/tweag/jupyterWith; + ref = "master"; + }) {}; + + pyscriptKernel = { + spec = pkgs.runCommand "pyscript" {} '' + mkdir -p $out/kernels/pyscript + cp ${kernel_json} $out/kernels/pyscript/kernel.json + cp ${pyscript_conf} $out/kernels/pyscript/pyscript.conf + ''; + runtimePackages = [ pyenv ]; + }; + + kernel_json = pkgs.writeText "kernel.json" (builtins.toJSON { + argv = [ + "${pyenv}/bin/python3" "-m" "hass_pyscript_kernel" + "-f" "{connection_file}" + ]; + display_name = "hass_pyscript"; + language = "python"; + }); + + pyscript_conf = pkgs.writeText "pyscript.conf" '' + [homeassistant] + hass_host = ${hass_host} + hass_url = http://''${hass_host}:8123 + hass_token = ${hass_token} + ''; + + jupyterEnvironment = jupyter.jupyterlabWith { + kernels = [ pyscriptKernel ]; + }; + +in jupyterEnvironment.env |